Online Compiler C

#include <stdio.h> int main() { int x, counter; scanf("%d", &x); while( x != 0){ counter++; scanf("%d", &x); } printf("%d\n", counter); return 0; }
这段代码的作用是:从输入中不断读取整数,直到遇到0为止,然后输出读取的非零数字的个数(不包括最后的0)。

代码中存在一个关键问题:变量 `counter` 没有初始化,它的初始值是不确定的,这会导致计数结果错误。

- 在使用 `counter++` 之前,需要先给 `counter` 赋一个初始值,比如0。
- 注意:当输入的第一个数就是0时,循环不会执行,此时 `counter` 应该输出0,但未初始化的变量可能输出任意值。