Blame
|
1 | # 递归算法设计数值转换程序 |
||||||
| 2 | ||||||||
| 3 | ```c |
|||||||
| 4 | #include <stdio.h> |
|||||||
| 5 | #include <string.h> |
|||||||
| 6 | ||||||||
| 7 | void convto(char *s, int n, int b) { // 函数声明 |
|||||||
| 8 | char bit[] = {"0123456789ABCDEF"}; |
|||||||
| 9 | int len; // 声明变量 |
|||||||
| 10 | if (n == 0) { |
|||||||
| 11 | strcpy(s, ""); // 字符串复制 |
|||||||
| 12 | return; |
|||||||
| 13 | } |
|||||||
| 14 | convto(s, n / b, b); // 递归 |
|||||||
| 15 | len = strlen(s); // 获取字符串长度 |
|||||||
| 16 | printf("%s\n", s); |
|||||||
| 17 | s[len] = bit[n % b]; |
|||||||
| 18 | s[len + 1] = '\0'; |
|||||||
| 19 | } |
|||||||
| 20 | ||||||||
| 21 | void main(void) { // 主函数 |
|||||||
| 22 | char s[80]; |
|||||||
| 23 | int i, base, old; |
|||||||
| 24 | printf("请输入十进制数:"); |
|||||||
| 25 | scanf("%d", &old); |
|||||||
| 26 | printf("请输入转换的进制:"); |
|||||||
| 27 | scanf("%d", &base); |
|||||||
| 28 | convto(s, old, base); // 对数制转换 |
|||||||
| 29 | printf("%s\n", s); |
|||||||
| 30 | getchar(); |
|||||||
| 31 | return; |
|||||||
| 32 | } |
|||||||
| 33 | ``` |
|||||||