在线编译器 C

#include <stdio.h> void print_num(int num) { if (n == 0) { return; } print_num(n / 10); printf("%d ", n % 10); } int main() { print_num(52); return 0; }
这段代码试图用递归方式打印一个整数的每一位数字,但存在变量名不一致的问题。

- 函数定义中参数是 `int num`,但函数体内却使用了未定义的变量 `n`,导致编译错误。
- 递归逻辑本身是正确的:先递归处理高位,再打印当前最低位,这样数字会按从左到右的顺序输出。

- 检查函数定义中的参数名和函数体内使用的变量名是否一致,确保它们匹配。
- 思考递归的终止条件:当数字为0时返回,但如果输入本身就是0,这个条件会导致什么结果?