在线编译器 C

#include <stdio.h> int sum_to_n(int n){ int i=1,sum=0; if(i<=n){ sum+=i; i++;} return 0; } int main() { int x; scanf("%d",&x); sum_to_n(x); return 0; }
这段代码试图计算从1到n的整数和,但存在逻辑错误。函数 `sum_to_n` 只执行了一次加法(当i=1时),然后立即返回0,没有循环或递归来累加所有数字。主函数调用了 `sum_to_n` 但没有使用返回值。

- 函数 `sum_to_n` 中的 `if` 语句只执行一次,应该改为循环结构(如 `while` 或 `for`)来重复累加直到 i 超过 n。
- 函数返回了固定的0,而不是计算出的总和。你需要让函数返回累加后的 `sum` 值,并在主函数中输出或使用这个返回值。