在线编译器 C

#include <stdio.h> int main() { int n; int cnt=0; while(scanf("%d", &n) == 1) { if (n == 0) { break; } cnt++; } printf("%d\n",cnt ); return 0; }
这段代码从标准输入读取整数,每读到一个非零整数就计数一次,遇到0时停止读取,最后输出读取的非零整数的个数。

- 代码中的大括号位置可能不对,printf语句在while循环结束后才执行,但它的缩进让人误以为它在循环内部。检查一下大括号的配对,确保printf在循环结束后只执行一次。
- 注意变量cnt的初始值,它从0开始计数,但题目要求统计的是输入中非零整数的个数,这个逻辑是正确的。不过要确认题目是否要求统计所有输入数字(包括0)的个数,如果是,那么遇到0时不应该break。