Online Compiler C

#include <stdio.h> int main() {int n,a=1,b=1,d,e=1; scanf("%d",&n); while (e<=n){ if (e==1) {printf("%d",a);} else if (e==2) {printf("%d",b);} else {d=a+b; printf("%d",d); a=b; b=d;} e++;} return 0; }
这段代码的功能是输出斐波那契数列的前 n 项。它使用循环从第1项开始,依次计算并打印每一项。变量 a 和 b 分别存储当前项的前两项,d 存储当前项的值。

- 代码中在打印每一项时没有添加空格或换行,所有数字会连在一起输出,例如输入5会输出"11235"而不是"1 1 2 3 5"。你可以考虑在 printf 中添加空格或换行来让输出更清晰。
- 当 n 为1时,循环只执行一次,但代码中 e 从1开始,e==1 和 e==2 的分支都能正确工作。不过你可以思考一下,如果 n 为0时程序会怎样?目前代码没有处理 n 为0的情况。