Online Compiler C

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

- 数组 `count[10]` 的初始化方式不正确。在C语言中,不能直接用 `= 0` 来初始化整个数组,这会导致编译错误或未定义行为。
- 在输出循环中,`printf` 没有换行,所有输出会连在一起,而且数字和次数之间也没有分隔符,可读性差。
- `main` 函数没有调用 `print_digit_count`,所以代码实际上不会执行任何统计输出。

- 检查数组初始化的正确语法,比如使用 `= {0}` 或者用循环逐个赋值。
- 考虑在输出时添加换行或空格,让结果更清晰。