C语言八进制转十进制

大学刚学C语言一个月该怎么写这个八进制转十进制这个代码。

#include <stdio.h>
int main()
{
    int n;
    scanf("%o",&n);
    printf("%d",n);
    return 0;
}


#include "stdio.h"
void main()
{
   int a=10;
   printf("%o",a);
}

代码如下,如有帮助,请帮忙采纳一下,谢谢。:
效果图如下

img

代码:

#include <stdio.h>
#include <stdlib.h>
int main()
{
    char buf[10]={0};
    int n,i=0;
    int s = 0;
    scanf("%d",&n);
    itoa(n,buf,10);
    while(buf[i])
    {
        s = s* 8 + buf[i]-'0';
        i++;
    }
    printf("%d",s);
    return 0;
}

就是把这个数百位乘以8的2次方,十位乘以8的1次方,个位乘以8的0次方

int getWeiNum(int x)
{
  int a=0;
  while(x!=0){
    x=x/10;
    a++;
  }
 return a;
}

int main()
{
  int num=0,a=0,i=0,sum=0,b=0,c=0,d=0;
  scanf("%d",&num)
  a= getWeiNum(num);
  for(i=a;i>0;i--)
  {
    b=pow(10,i);
    c=pow(10,i-a);
    d=pow(8,i);
    sum+=(num/b%c)*d;
  }
  printf("%d",sum);

}

望采纳!!