新手求解,2,8,16进制转换10进制
从键盘上任意输入一个2、8或16进制数(若输入的相应进制数有误,需重新输入),将其转换成十进制数输出我有一个10进制转换成2,8,16进制的 #include "stdio.h" void any1(int x); void any2(int x); void any3(int x); char change(int x); void main() { long integer = 0; int n; int c; while(9) { printf("请输入需要转换为的进制数和需要转换的十进制整数:"); scanf("%d %d",&n,&integer); if(n == 2) { printf("转换成%d进制为:",n); any1(integer); }else if(n == 8) { printf("转换成%d进制为:",n); any2(integer); }else { printf("转换成%d进制为:",n); any3(integer); } printf("\n"); printf("是否继续?(Y/N):"); scanf(" %c",&c); if((c == 'n')||(c == 'N')) break; } } void any1(int x) { if(x / 2 > 0) { any1(x / 2); printf("%d",x % 2); } else printf("%d",x); } void any2(int x) { if(x / 8 > 0) { any2(x / 8); printf("%d",x % 8); } else printf("%d",x); } void any3(int x) { if(x / 16 > 0) { any3(x / 16); if((x % 16) > 9) printf("%c",change(x % 16)); else printf("%d",x % 16); } else { if(x > 9) printf("%c",change(x)); else printf("%d",x); } } char change(int x) { switch(x) { case 10: return 'A'; case 11: return 'B'; case 12: return 'C'; case 13: return 'D'; case 14: return 'E'; case 15: return 'F'; default : return 'N'; } } 看着用吧!