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

#include <stdio.h> void print_digit(char s[]){ int digit_counter[10]={0} for(int i=0;s[i]!='\0';i++){ if(s[i]>='0'&&s[i]<='9'){ int digit=s[i]-'0'; digit_counter[digit]++ } } for (int i=0;i<=9;i++){ if(digit_counter[i]>0){ printf("%d %d\n",i,digit_counter[i]); } } } int main() { printf("Hello, World!\n"); return 0; }
这段代码定义了一个函数 `print_digit`,它的目的是统计一个字符串中每个数字字符(0-9)出现的次数,并打印出来。但代码中有几处语法错误,导致无法编译通过。

- 第4行 `int digit_counter[10]={0}` 缺少分号,数组初始化语句末尾需要加分号。
- 第8行 `digit_counter[digit]++` 也缺少分号,自增语句末尾需要加分号。

另外,`main` 函数中只是打印了 "Hello, World!",并没有调用 `print_digit` 函数,所以即使修复语法错误,程序也不会执行统计数字的功能。你需要考虑如何在 `main` 中测试这个函数。