数句结构中数制转换问题 [问题描述] 将十进制数N和其它d进制数的相互转换是计算机实现计算的基本问题

对于键盘输入的任意一个非负的十进制整数,打印输出与其等值的八进制数。由于上述的计算过程是从低位到高位顺序产生的八进制数的各个数位,而打印输出,一般来说应从高位到地位进行,恰好和计算过程相反。因此可以先将计算过程中得到的八进制数的各位进栈,待相对应的八进制数的各位均产生以后,再使其按顺序出栈,并打印输出。即得到了与输入的十进制数相对应的八进制数。

进制转换,讲十进制转换为任意进制;n是十进制数,r是转为的进制;r不超过16;
#include<stdio.h>
int main()
{
int n,r,i;
while(scanf("%d%d",&n,&r)!=EOF)
{
int a[100000];
i=-1;
if(n<0)
{printf("-");
n*=-1;}
while(n)
{a[++i]=n%r;
n/=r;}
for(i;i>=0;i--)
{if(a[i]>9)
printf("%c",a[i]-10+'A');//这点是比较重要的,要用A表示10,以此类推11、12……输出是用的c;
else
printf("%d",a[i]);}
putchar('\n');
}
return 0;

}
温馨提示:答案为网友推荐,仅供参考
相似回答