turbo c程序问题~

来源:百度知道 编辑:UC知道 时间:2024/05/12 20:39:15
要求编写一个函数来实现输入一个8进制的数,输出一个10进制的数,不能用%o和%d来转换。。。

#include <stdio.h>
#include <math.h>
int main()
{
int octal;//8进制
int decimal=0;//10进制
scanf("%d",&octal);
int temp;
int i=0;//记录各个数字所属的位置,千位,百位,个位等等
int s=octal;
while (octal)
{
temp=octal%10;
if (temp>=8)
{
printf("%d非法的八进制数\n",s);
return 0;
}
decimal=decimal+pow((double)8,i)*temp;
++i;
octal/=10;
}
printf("八进制数%d对应的十进制数为%d\n",s,decimal);
return 0;
}

呵呵 那好办啊
进制转换啊
int main(void)
{
int in,out;
printf("输入一个八进制数:");
scanf("%d",&in);
out=OtoD(in);
printf("%d",out);
getch();
return 0;
}

int OtoD(int n)
{
int i=0,temp=0,zhen=n,yu=n;
for(i=6;i>=0;i++)
{
zhen=yu/pow(10,i);
yu=yu%pow(10,i);
temp=temp+zhen*pow(8,i);