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

// 统计输入文本中数字字符(0-9)的个数,文本以英文句点 '.' 结束 #include <stdio.h> int main() { char ch; int sum=0; while(1) { scanf("%c",&ch); if(ch=='.')//遇到.终止 { break; } if(ch>='0'&&ch<='9')//字符为数字字符:计数count+1 { sum=sum+ch; } } printf("%d\n",sum); return 0; }
这段代码试图统计输入文本中数字字符(0-9)的个数,但存在一个关键错误:它把数字字符的ASCII码值累加到了sum中,而不是计数加1。

- 当ch是数字字符时,你写的是 sum=sum+ch,这会把字符的ASCII码值(例如'0'是48)加到sum里,而不是让计数增加1。应该用 sum=sum+1 或者 sum++ 来递增计数。
- 变量名sum容易让人误解为求和,建议改用count之类的名字,更符合计数的含义。