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

#include <stdio.h> int main() { int n; int num[10] = {0}; scanf("%d", &n); while (n > 0) { int d = n % 10; n = n / 10; } for (int i = 0; i <= 9; i++) { if (num[i] >= 2) { printf("%d", i); } } return 0; }
这段代码的目的是读取一个整数,然后找出其中出现次数至少两次的数字并输出。但目前代码存在逻辑问题,导致无法正确统计数字出现的次数。

- 在while循环中,你提取了每一位数字d,但没有使用num数组来记录每个数字出现的次数。你需要将num[d]的值增加1,这样才能统计每个数字出现的频率。
- 另外,num数组初始化为0是正确的,但循环结束后,num数组中的值仍然是0,因为从未更新过。你需要确保在提取每一位数字时,对应的计数增加。