Online Compiler C

#include <stdio.h> int is_digit(char c){ if((c)==1){ return 1; }else return 0; } int main(void) { int c; int count = 0; while ((c = getchar()) != EOF && c != '.') { if (is_digit((char)c)) { ++count; } } printf("%d", count); return 0; }
这段代码试图统计输入中数字字符的个数,直到遇到句点或文件结束符。但 `is_digit` 函数的判断逻辑有误。

- 在 `is_digit` 函数中,你比较的是 `(c)==1`,这实际上是在检查字符的整数值是否为1,而不是判断它是否为数字字符。数字字符 '0' 到 '9' 的整数值是 48 到 57,不是 1。
- 你需要检查字符是否在 '0' 到 '9' 的范围内。C语言中字符常量用单引号表示,比如 `'0'`。