c语言八进制转十进制
#include <stdio.h>
#include <math.h>
int main()
{
int x,num;
printf("请输入您要转化的位数:\n");
scanf("%d",&x);
getchar();
if(x>0&&x<9)
{
num=change_01(x);
}
printf("该值转化为十进制数为:%d",num);
return 0;
}
int change_01(int a)
{
int b;
printf("请输入一个八进制数:(以0开头)\n");
b=change(a);
return b;
}
int change(int i)
{
char ch_01,ch_02;
int sum=0;
ch_01 = getchar();
if(ch_01=='0')
{
while((ch_02=getchar()) != '\n')
{
i--;
switch(ch_02)
{
case '0':
sum += 0*pow(8,i);
break;
case '1':
sum += 1*pow(8,i);
break;
case '2':
sum += 2*pow(8,i);
break;
case '3':
sum += 3*pow(8,i);
break;
case '4':
sum += 4*pow(8,i);
break;
case '7':
sum += 7*pow(8,i);
break;
default:
break;
}
}
return sum;
}
else
printf("输入不合法\n");
}