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 | ``` |