本关任务:编写递归函数,实现将一个十进制的整数以r(r=2,8,16)进制的形式输出。
1 #include<stdio.h> 2 void TransformToR(int n,int d)//10进制转换成任意进制 3 { 4 if(n==0) 5 return ; 6 else 7 { 8 TransformToR(n/d,d); 9 if(d>=10)//如果是10进制以上 10 { 11 if(n%d>=10) 12 { 13 printf("%c",(char)((n%d-10)+'A')); 14 } 15 else//如果余数小于10,则直接输出 16 printf("%d",n%d); 17 } 18 //如果进制小于10,不会有字母的问题 19 else 20 printf("%d",n%d); 21 } 22 } 23 24 int main() 25 { 26 int n,d; 27 28 29 printf("Input n,r(r=2,8,16):\n"); 30 scanf("%d,%d",&n,&d); 31 TransformToR(n,d); 32 printf("\n"); 33 34 35 return 0; 36 }
