Online Compiler C

#include <stdio.h> void print_num(int num) { if (num == 0) { return; } print_num(num / 10); printf("%d ", num % 10); } int main() { print_num(52); return 0; }
这段代码定义了一个递归函数 `print_num`,它接收一个整数,通过递归先处理高位数字,再打印当前数字的最后一位。在 `main` 中调用 `print_num(52)`,预期是依次打印数字的每一位。

- 注意递归的终止条件:当 `num` 为 0 时函数直接返回。但如果你传入的数字本身是 0,函数会什么都不打印就返回,这可能不是你想要的行为。
- 对于正数如 52,递归会先不断除以 10 直到 0,然后回溯时从最高位开始打印。但当前代码在 `num` 为 0 时直接返回,导致数字 0 本身不会被打印。如果你希望处理数字 0 的情况,需要调整终止条件的逻辑。