Online Compiler C

#include <stdio.h> int main() { int n; int cnt=0; while (1) { scanf("%d", &n); if (n==0) break; cnt++; } printf("%d", cnt); return 0; }
这段代码的功能是:不断读取用户输入的整数,直到输入0为止,然后输出一共输入了多少个非零数字(不包括最后的0)。

代码逻辑基本正确,但有一个小问题需要注意:

- 你的循环条件 `while(1)` 配合 `break` 是合理的,但 `scanf` 的返回值没有被检查。如果输入的不是整数(比如字母),程序可能会陷入死循环或产生意外行为。通常建议检查 `scanf` 的返回值是否为1,以确保成功读取了一个整数。

- 另外,变量 `cnt` 的命名可以更清晰,比如 `count`,但这不影响功能。