以下程序的功能是将十进制正整数m转换成r(二~十六)进制数并输出。请完善程序。
#include <stdio.h>
int main()
{
int m,r,i=0,x;
char s[80];
printf("请输入十进制数和要转换的进制:\n");
scanf("%d%d",________________);
while(m!=0)
{
x=m%r;
if(x>9)
s[i++]=x-10+'A'; /*若转换成十六进制,10~15的数字应转换为A~F*/
else
s[i++]=_____________; /*转化成字符存储*/
m=m/r;
}
printf("转换后的结果为:");
i--;
while(i>=0) /*逆序输出s数组中存放的值*/
printf("%c",s[_____________]);
printf("\n");
return 0;
}
#include <stdio.h>
int main()
{
int m,r,i=0,x;
char s[80];
printf("请输入十进制数和要转换的进制:\n");
scanf("%d%d",&m,&r);
while(m!=0)
{
x=m%r;
if(x>9)
s[i++]=x-10+'A'; /*若转换成十六进制,10~15的数字应转换为A~F*/
else
s[i++]=x+'0'; /*转化成字符存储*/
m=m/r;
}
printf("转换后的结果为:");
i--;
while(i>=0) /*逆序输出s数组中存放的值*/
printf("%c",s[i--]);
printf("\n");
return 0;
}
栈结构的逻辑结构为线性的,可建立链式结构使得入栈、出栈的操作是动态的,也可以很好地实现进制的转换。而且进制转换恰好和栈的输入输出输出类似,故选择栈是最好的。