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

#include <stdio.h> void sumt_to_n(int n) { if(n==0) return; { sumt_to_n(int n)=n+sumt_to_n(n-1); } } int main() { sumt_to_n(int n); return 0; }
这段代码试图计算从1到n的累加和,但存在多个语法和逻辑错误。

- 第7行中,`sumt_to_n(int n)=n+sumt_to_n(n-1);` 的写法是错误的。在C语言中,函数调用时不能重复声明参数类型,也不能将函数调用放在赋值号左边。递归调用应该直接写 `sumt_to_n(n-1)`,而不是 `sumt_to_n(int n)`。
- 第12行 `sumt_to_n(int n);` 同样错误,调用函数时只需写函数名和实际参数值,比如 `sumt_to_n(5);`,不需要写 `int n`。
- 函数 `sumt_to_n` 没有返回值,但递归需要返回累加结果。你需要思考如何让函数返回一个整数值,并在递归中正确使用这个返回值。