在线编译器 C

#include <stdio.h> void print_digit(char s[]) { int count[10]={0}; int i; for(i=0;s[i]!='\0';i++) { if(s[i]>='0'&&s[i]<='9') count[s[i]-'0']++; for(I=0;i<10;i++) { if(count[i]>0) printf("%d %d",i,count[i]); } } int main() { printf("Hello, World!\n"); return 0; }
这段代码试图统计一个字符串中每个数字字符(0-9)出现的次数,但存在多个语法和逻辑错误。

- 在 `print_digit` 函数中,内部循环的变量 `I` 未定义,且循环条件使用了 `i<10`,但 `i` 是外层循环的变量,这会导致混乱。同时,打印语句缺少换行,且输出格式可能不符合预期。
- 函数 `print_digit` 从未被 `main` 调用,因此程序只会打印 "Hello, World!" 并结束。

- 检查内部循环的变量名和循环条件,确保使用正确的变量,并且循环结构清晰。
- 在 `main` 函数中添加对 `print_digit` 的调用,并传入一个测试字符串来验证功能。