Online Compiler C

#include <stdio.h> void sum_1_to_n(int n) { if (n == 1) printf("%d", n); return; return sum_1_to_n(n-1)+n }
这段代码试图用递归计算从1到n的和,但存在语法和逻辑错误。

- 第5行的`printf`语句后面缺少花括号,导致`return;`不在`if`语句内,函数会在`n==1`时先打印再返回,但返回类型是`void`,不能有返回值。
- 第7行的递归调用`sum_1_to_n(n-1)+n`试图将`void`函数的结果与整数相加,这是非法的,而且末尾缺少分号。