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

#include <stdio.h> int sum_to_n(int n){ if (n == 0) { return; } return sum_to_n(n - 1) + n; } int main() { sum_to_n(5); return 0; }
这段代码定义了一个递归函数 `sum_to_n`,意图是计算从1到n的整数和,并在 `main` 中调用它。但代码存在两个主要问题。

- 当 `n` 为0时,函数使用了 `return;` 而没有返回值,但函数声明为返回 `int` 类型,这会导致未定义行为。
- 在 `main` 函数中调用了 `sum_to_n(5)`,但没有使用或打印它的返回值,所以即使函数正确,计算结果也会被丢弃。