输入一个十进制数N,将它转换成R进制数输出,这里假设最大为十六进制。
#include <stdio.h>
int exchange(int a)
{
if(a 围混派损失同互== 10){printf("A");return 0;}
if(a == 11){printf("B");return 0;}
if(a == 12){printf("C");return 0;}
if(a == 13){printf("D");return 0;}
if(a == 14){printf("E");return 0;}
if(a == 15){printf("F");return 0;}
printf("%d",a);
}
int main(int argc, char *argv[])
{
int x,y,i,j,a[110];
while(scanf("%d%d",&x,&y) == 2)//输入x,y,x为十进制数,y为要转换的进制
{
if(x < 0){printf("-"); x = -x;}//如果x小于零,转换成正数再计算,然后先把负号输出
if(x == 0){printf("0");return 0;}
for(i = 0;x != 0;i++)//一下为十进制转换成其他进制的基本规则
{
a[i] = x % y;
x = x / y;
}
i--;
if(y > 10)//如果要转换的进制大于十进制,要特别处理。
for(j = i;j >= 0;j--)
exchange(a[j]);
else for(j = i;j >= 0;j--)
printf("%d",a[敌老善引依准利干危际j]);
printf("\n");
}
return 0;
}