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("%d", sum); return 0; }
这段代码试图从输入中读取字符,直到遇到句点为止,并累加所有数字字符对应的数值。但代码中存在一个语法错误。

- 第10行 `int digit = c - '0'` 后面缺少分号,导致编译错误。C语言中每条语句必须以分号结束。
- 另外,`scanf` 读取字符时可能会读取到换行符或空格,这可能导致循环提前结束或意外行为。考虑输入格式对程序逻辑的影响。