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

#include <stdio.h> int main() { char c; int sum = 0; while (c != '.') { scanf(% c, &c); if (c > '0' && c < '9') { sum = sum + c - '0'; } } printf("%d", sum); return 0; }
这段代码试图从输入中读取字符,遇到句点停止,并累加所有数字字符对应的数值。但存在几个问题。

- 变量 `c` 在使用前未初始化,第一次判断 `c != '.'` 时行为未定义。
- `scanf` 的格式字符串写法有误,应该是 `scanf(" %c", &c);`,注意空格和引号。
- 数字字符的判断条件 `c > '0' && c < '9'` 漏掉了字符 `'9'` 本身,应该用 `>=` 和 `<=`。