将10进制数转换成各种进制数的算法,代码如下:
1 #include<stdio.h> 2 #define MAXN 1000 3 void main() 4 { 5 void trans(char *, long, int); 6 char result[MAXN]; 7 long number; 8 int base; 9 while (1) 10 { 11 printf("数值:"); 12 scanf("%ld", &number); 13 printf("基数:"); 14 scanf("%d", &base); 15 trans(result, number, base); 16 } 17 } 18 19 void trans(char *result, long number, int base) 20 { 21 int to = 0, len = 0, i = 0; 22 do 23 { 24 to = number % base; 25 number = number / base; 26 if (to > 9) 27 *result = to + 55; 28 else 29 *result = to + 48; 30 len++; 31 result++; 32 } 33 while (number > 0); 34 *result = '\0'; 35 36 for (i = len; i >= 0; i--) 37 printf("%c", *(result--)); 38 printf("\n"); 39 }
程序运行结果: