#include <stdio.h> void sub(int n, int r) { if (n >= r) sub(n / r, r); else printf("%d", n); printf("%d", n % r); } int main() { sub(37, 5); }
时间: 2024-01-28 17:03:51 浏览: 67
#include <stdio.h>
4星 · 用户满意度95%
这段代码的作用是将十进制数 `37` 转换为 `5` 进制并输出。
在 `sub()` 函数中,先判断当前的十进制数 `n` 是否大于等于进制数 `r`。如果是,则将 `n` 除以 `r` 并递归调用 `sub()` 函数,否则将 `n` 输出到控制台上。接着,将 `n` 对 `r` 取余的结果也输出到控制台上。由于递归调用的顺序是自下而上的,因此最终输出的结果是 `37` 的 `5` 进制表示,即 `142`。
需要注意的是,在输出 `n` 和 `n % r` 时,没有使用分隔符,因此这两个数的输出会紧挨在一起,中间没有空格、逗号或其他分隔符。如果想要在输出时添加分隔符,可以修改输出语句,例如:
```c
printf("%d ", n); // 在 n 后面添加一个空格
printf("%d\n", n % r); // 在 n % r 后面添加一个换行符
```
这样,在输出时就会在 `n` 和 `n % r` 之间添加一个空格,而且每个数的输出后面会有一个换行符。
阅读全文