//八进制转十进制。如123O=83D
#include "stdio.h"
main()
{int x,y=_______,i=_______;
scanf("%d",&x);
printf("%dO=",x);
while(_______)
{y=y+_______;
x=x/10;
i=_______;
}
printf("%dD\n",y);
}
接下来的是答案加解析,请独立完成查看
//2、八进制转十进制。如123O=83D
#include "stdio.h"
main()
{int x,y=0,i=1; //首先看清题目,浏览全文代码,再填答 ,因为结尾是输出y,所以y是最终结果,所以y刚开始是0,
scanf("%d",&x); //八进制转十进制就是,1*8的二次方+2*8的一次方+2*8的零次方=83D
printf("%dO=",x);
while(x!=0) //如果想要进行转换,那么八进制x只有被/到0时停止运算
{y=y+i*(x%10); //y值先不确定, 但我们只能从最低位开始加,那么x%10求最小值,而0次幂就是1,所以刚开始设置i=1
x=x/10; //因为要转为十进制,那么每次转换就要/10
i=i*8; // 而从第二位开始,就是8的一次方,而第三位就是8的二次方,那么每次i要乘8
}
printf("%dD\n",y);
}