Online Compiler C

#include <stdio.h> void print_1_to_n(int n){ for(int i=1;i<=n;i++) if(i>1){ printf(""); } printf("%d",i); }
这段代码定义了一个函数 `print_1_to_n`,意图是打印从1到n的所有整数。但实际执行时,它只会打印一个数字,而不是完整的序列。

问题出在循环结构上:`for` 循环后面没有用花括号 `{}` 将多个语句括起来,导致只有 `if` 语句属于循环体,而 `printf("%d",i);` 在循环结束后才执行一次。

- 检查 `for` 循环的循环体范围:在C语言中,如果没有花括号,循环体只包含紧随其后的第一条语句。你的 `if` 语句是循环体,但 `printf` 不在循环内。
- 思考如何让循环每次迭代都执行打印操作,同时正确处理数字之间的分隔(比如逗号或空格)。