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

#include <stdio.h> int sum(int n) { if (n < 1) { return 0; } return n+ sum(n-1); printf("%d\n", sum); }
这段代码定义了一个递归函数 `sum`,用于计算从 1 到 n 的整数和。但代码中存在一些错误。

- 函数 `sum` 递归计算了和,但 `printf` 语句放在 `return` 之后,永远不会执行。在 C 语言中,`return` 会立即结束函数,后面的代码无效。
- `printf` 中使用了 `sum` 作为变量名,但 `sum` 是函数名,不是变量,这会导致编译错误。

- 检查 `printf` 的位置:它应该在 `return` 之前,或者放在调用 `sum` 的主函数中,而不是在递归函数内部。
- 确保 `printf` 中打印的是具体的数值,而不是函数名。