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

#include <stdio.h> void print_digit_count(char number[]) { int cnt[10] = {0}; for (int i = 0; number[i] != '\0'; i++){ int d = number[i] - '0'; cnt[d]++; } for (int i = 0; i <= 9; i++) { if (cnt[i] > '\0') printf("%d %d\n", i, cnt[i]); } } return 0; }
这段代码试图统计一个字符串中每个数字字符(0-9)出现的次数,但存在几个问题。

- 代码中 `return 0;` 出现在函数外部,这是语法错误。`return` 语句只能出现在函数内部,不能单独放在全局作用域。
- 在判断 `cnt[i] > '\0'` 时,`'\0'` 是空字符(值为0),所以这个条件等价于 `cnt[i] > 0`,但写法容易让人误解。更常见的做法是直接写 `cnt[i] > 0`。

- 检查函数 `print_digit_count` 的定义和调用是否完整,以及 `main` 函数是否缺失。