//编程实现将任意的十进制整数转换成任意R进制数
#include <stdio.h>
int jinzhi (int numb, int flag); /*进制转换,flag为要转换的进制,最高16*/
int main()
{
int number, flag;
printf ("输入一个数和要转换的进制:");
scanf ("%d%d", &number, &flag);
printf ("十进制数%d转为%d进制是 ", number, flag);
jinzhi (number, flag);
return 0;
}
int jinzhi (int numb, int flag)
{
int nA[100], i;
for (i = 0; numb != 0; i ++)
{
nA[ i ] = numb % flag;//nA[0]=0;nA[1]=1;n[2]=0;nA[3]=1
if (nA[i ] >= 10)
switch (nA[i ])
{
case 10: nA[i ] = 'A'; break;
case 11: nA[i ] = 'B'; break;
case 12: nA[i ] = 'C'; break;
case 13: nA[i ] = 'D'; break;
case 14: nA[i ] = 'E'; break;
case 15: nA[i ] = 'F'; break;
}
numb = numb / flag;
}
i--;//我不知道这个i--有什么作用?没有它程序运行的结果就不是你想要的
//printf ("i1=%d\n",i );
while (i >= 0)
{
if (nA[i ] >= 'A' && nA[i ] <= 'F')
printf ("%c", nA[i ]);
else
printf ("%d", nA[i ]);
// printf ("i2=%d\n",i );
i--;
//printf ("i3=%d\n",i );
}
printf ("\n");
return 0;
} |
|