在线编译器 C

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

- 代码中的 `while(scanf("%c",&ch)!=EOF)` 会一直读取字符直到文件结束,但你的题目要求可能是遇到小数点就停止,这里用 `break` 实现了,是正确的。
- 注意:`scanf("%c", &ch)` 会读取包括空格、换行符在内的所有字符。如果输入中有空格或换行,它们不会被当作数字处理,但可能会影响你对输入格式的理解。你可以思考一下,如果输入是 "12.34",程序会如何处理?