Онлайн компилятор C

#include <stdio.h> int main() { char c; int counter=0; do{ scanf("%c",&c); if(c>='0'&&c<='9'){ counter++; } }while(c!='.'); printf("%d",counter); return 0; }
这段代码的功能是:从输入中逐个读取字符,统计其中数字字符('0'到'9')的个数,直到遇到句点('.')为止,最后输出统计结果。

- 注意循环条件 `while(c!='.')` 是在每次循环结束后判断,因此当读取到 '.' 时,循环会结束,但 '.' 本身不会被统计。
- 你的代码有一个潜在问题:`scanf("%c",&c)` 会读取包括空格、换行符在内的所有字符。如果输入中有空格或换行,它们也会被处理,但不会影响数字计数。不过,如果输入格式是像 "123.456" 这样连续的数字,代码能正常工作。