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

// 统计输入文本中数字字符(0-9)的个数,文本以英文句点 '.' 结束 #include <stdio.h> int main() { char ch; int count =0; while(1) { scanf("%c",&ch); if(ch=='.')//遇到.终止 { break; } if(ch>='0'&&ch<='9')//字符为数字字符:计数count+1 { count++; } } printf("%d\n",count); return 0; }
这段代码的功能是:从输入中逐个读取字符,遇到英文句点 '.' 时停止,并统计在 '.' 之前出现的数字字符('0' 到 '9')的个数,最后输出这个计数。

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

- 当用户输入时,如果输入了空格或换行符,`scanf("%c", &ch)` 会读取这些空白字符。虽然它们不会影响数字计数,但可能会让程序在遇到 '.' 之前意外处理了多余的字符。不过对于本题要求来说,这通常不是大问题。

- 更关键的是:如果输入中 '.' 之前有多个数字,程序会正确计数。但请思考一下,如果输入中 '.' 之前没有任何字符,或者第一个字符就是 '.',程序会输出什么?这是符合预期的吗?