请大家帮帮忙~~
本人新手,这个是老师留的作业,编完之后发现只能将十进制转换为4至16进制的的,2,3进制的结果有误,不知道是不是与'\0'有关:*练习6.编写一个程序实现将一个十进制整数m转换成r(二至十六)进制的字符串。
提 示:此题中数值转换的结果应该使用字符数组存储。
#include "stdio.h"
#include "string.h"
void main ()
{
char a[20];
int i,r,m,len;
printf ("输入十进制的数m: ");
scanf ("%d",&m);
printf ("输入r进制的基数(二至十六): ");
scanf ("%d",&r);
printf ("十进制的%d = %d进制的",m,r);
for (i=0;m!=0;i++)
{ a[i]=m%r;
m=m/r;
}
a[i]='\0';
len=strlen(a);
for (i=len-1;i>=0;i--)
switch (a[i])
{ case 10: printf("A");break;
case 11: printf("B");break;
case 12: printf("C");break;
case 13: printf("D");break;
case 14: printf("E");break;
case 15: printf("F");break;
default : printf("%d",a[i]);
}
printf("\n");
}
请各位帮帮忙 谢谢了 因为是新手所以分数不高 敬请见谅