Online Compiler C

#include <stdio.h> void print_digit(char s[]) { int count[10] = {0}; for (int i = 0; s[i] != '\0'; i++) { char c = s[i]; if (c >= '0' && c <= '9') { int digit = s[i] - '0'; count[digit]++; } } for (int i = 0; i <= 9; i++) { if (count[i] > 0) { printf("%d %d\n", i, count[i]); } } } int main() { return 0; }
这段代码定义了一个函数 `print_digit`,它接收一个字符串,统计其中每个数字字符('0'到'9')出现的次数,然后按数字从小到大的顺序输出每个出现过的数字及其次数。主函数 `main` 目前只是返回0,没有调用这个函数。

- 你的代码逻辑是正确的,但主函数中没有调用 `print_digit`,所以程序运行时不会产生任何输出。你需要考虑如何在 `main` 中测试这个函数,比如传入一个字符串并观察结果。

- 另外,注意函数名 `print_digit` 是单数形式,但功能是打印所有数字的统计,可以考虑命名是否更贴切,不过这不是错误。