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

#include <stdio.h> int main() { int n, , n_0, m = 0, i = 0, a; scanf("%d", &n); n_0 = n while (i < 10) { while (n != 0) { a = n % 10; if (a == i) m++; n = n / 10; } n = n_0; if (m >= 2) printf("%d ", i); i++; } return 0; }
这段代码的目的是统计一个整数中每个数字(0-9)出现的次数,并输出出现次数大于等于2次的数字。但代码中存在语法错误和逻辑问题。

- 第4行 `int n, , n_0,` 中有一个多余逗号,这是语法错误。
- 第6行 `n_0 = n while` 缺少分号,导致编译错误。
- 变量 `m` 没有在每次循环开始时重置,导致计数会累积,而不是针对每个数字单独统计。

- 提示1:检查变量声明和语句结束的分号,确保每行代码语法正确。
- 提示2:思考变量 `m` 应该在什么时候被重置为0,才能正确统计每个数字出现的次数。