Online Compiler C

#include <stdio.h> int main() { char c; int 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; }
这段代码的功能是:从输入中逐个读取字符,遇到数字字符就将其转换为对应的整数值并累加,直到遇到句点 '.' 时停止,最后输出累加和。

- 注意循环条件 `while(c!='.')` 是在每次循环结束后检查,这意味着即使输入了 '.',它也会先被读入并参与判断,但 '.' 本身不是数字,所以不会影响累加。不过,如果输入中 '.' 后面还有字符,它们不会被处理,因为循环已经结束。

- 一个潜在问题是:`scanf("%c",&c)` 会读取包括空格、换行符在内的所有字符。如果输入中有空格或换行,它们也会被检查,但不会影响数字累加。这通常不是问题,但需要注意输入格式。