Онлайн компилятор C

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

- 函数定义和调用中使用了 `void` 关键字,这是错误的。`void` 只能用于声明函数返回类型,不能用于调用函数或作为参数的一部分。
- 递归调用 `void print_num(n / 10);` 语法错误,应该直接写 `print_num(n / 10);`。
- 函数内部使用了变量 `n`,但参数名是 `num`,导致 `n` 未定义。

- 检查函数参数名是否与内部使用的变量名一致。
- 递归调用时不要加 `void`,直接写函数名和参数即可。