Online Compiler C

#include <stdio.h> void print_digit_count(char number[]) { int cnt[10] = {0}; for (int i = 0; number[i] != '0'; i++) int main() { 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; }
这段代码试图统计一个字符串中每个数字字符出现的次数,但存在语法错误和逻辑问题。

- 代码中 `for` 循环的循环体直接写成了 `int main() { ... }`,这是错误的。循环体应该直接包含要执行的语句,而不是再定义一个函数。
- 循环条件 `number[i] != '0'` 使用了字符 `'0'`,这会导致循环在遇到数字字符 `'0'` 时停止,而不是在字符串结尾 `'\0'` 时停止。应该使用 `'\0'` 来判断字符串结束。