说实话,进制数计算一般只有2、8、10、16,按你的要求写了个程序,包括2、8、10、16以外的进制数转换,但是余数超出25就无法表示了,因为英文字母只有26个 #include #include void main() { int n=0,m=0,i=0; char tmp[1000]={'\0'}; printf("请输入一个十进制数:"); scanf("%d",&n); printf("转换成n进制数[2/8/16...]:"); scanf("%d",&m); while(n>0) { if(n%m < 10) tmp[i++] = n%m+'0'; else if(n%m>9 && n%m<26) tmp[i++] = n%m-10+'A'; else { printf("\n无法表示!\n"); break; } n /= m; } strrev(tmp);//反转字符串 printf("%s\n",tmp); }