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

#include <stdio.h> int main() { int a,count[10],i,digit,n; scanf("%d",&n); while (n>0){ digit=n%10; count[digit],digit++; n=n/10;} for(i=0;i<=9;i++){ if(count[i]>=2) {printf("%d ",i);} else{pirntf("%d", );} return 0; }
这段代码试图统计一个整数中每个数字出现的次数,并输出出现次数大于等于2的数字。但代码中存在多个语法和逻辑错误。

- 变量 `count` 数组没有初始化为0,这会导致统计结果不可预测。在C语言中,局部数组不会自动清零。
- 第7行 `count[digit],digit++;` 是无效的逗号表达式,没有实际增加计数。应该使用 `count[digit]++` 来递增对应数字的计数。
- 第11行 `pirntf` 是拼写错误,应为 `printf`,且 `else` 分支中的 `printf` 缺少参数,格式也不完整。
- 第11行 `else` 分支的 `printf` 中 `"%d",` 后面没有变量,这是语法错误。
- 代码中缺少一些必要的花括号,导致 `for` 循环和 `if-else` 结构不完整。