Commit ed7276
2024-04-04 10:14:44 Qwas: 新增递归算法设计数值转换程序| /dev/null .. c-algorithm/\351\200\222\345\275\222\347\256\227\346\263\225\350\256\276\350\256\241\346\225\260\345\200\274\350\275\254\346\215\242\347\250\213\345\272\217.md | |
| @@ 0,0 1,33 @@ | |
| + | # 递归算法设计数值转换程序 |
| + | |
| + | ```c |
| + | #include <stdio.h> |
| + | #include <string.h> |
| + | |
| + | void convto(char *s, int n, int b) { // 函数声明 |
| + | char bit[] = {"0123456789ABCDEF"}; |
| + | int len; // 声明变量 |
| + | if (n == 0) { |
| + | strcpy(s, ""); // 字符串复制 |
| + | return; |
| + | } |
| + | convto(s, n / b, b); // 递归 |
| + | len = strlen(s); // 获取字符串长度 |
| + | printf("%s\n", s); |
| + | s[len] = bit[n % b]; |
| + | s[len + 1] = '\0'; |
| + | } |
| + | |
| + | void main(void) { // 主函数 |
| + | char s[80]; |
| + | int i, base, old; |
| + | printf("请输入十进制数:"); |
| + | scanf("%d", &old); |
| + | printf("请输入转换的进制:"); |
| + | scanf("%d", &base); |
| + | convto(s, old, base); // 对数制转换 |
| + | printf("%s\n", s); |
| + | getchar(); |
| + | return; |
| + | } |
| + | ``` |