Blame
| 199429 | Qwas | 2024-04-04 18:47:38 | 1 | # 递归算法设计数值转换 |
| ed7276 | Qwas | 2024-04-04 10:14:44 | 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 | ``` |