Online Compiler C

#include <stdio.h> int main() { char c; int count_digit=0,sum=0; do{ scanf("%c",&c); if(c>='0'&&c<='9'){ int digit=c-'0'; sum=sum+digit; } }while(c!='.'); printf("sum=%d\n",sum); return 0; }
这段代码的功能是:从输入中逐个读取字符,遇到数字字符就将其转换为对应的整数值并累加到sum中,直到遇到句点'.'为止,最后输出累加和。

代码中有一个变量count_digit被定义但从未使用,这不会导致错误,但属于冗余。

- 注意循环条件:当读取到'.'时,循环会结束。但此时'.'已经被读取并处理了吗?检查一下循环体内是否在遇到'.'时做了不该做的操作。
- 思考一下:如果输入中连续出现多个非数字字符(比如空格或字母),你的代码会如何处理?这些字符是否会影响数字的累加?