Online Compiler C

#include <stdio.h> int main() { int a[10]; for (int i = 0; i < 10; i++) { scanf("%d", &a[i]); } for (int i = 0; i < 10; i++) { int count = 0; for (int j = 0; j < 10; j++) { if (a[i] == a[j]) count++; } if (count == 0) printf("%d ", a[i]); } return 0; }
这段代码试图找出数组中只出现一次的元素并打印出来。它先读入10个整数存入数组a,然后对每个元素统计它在整个数组中出现的次数,如果次数为0就打印该元素。

代码有一个逻辑错误:当元素出现一次时,count的值应该是1,而不是0。所以条件`count == 0`永远不会成立,程序不会输出任何结果。

- 检查一下当元素只出现一次时,内层循环统计出的count值是多少,然后修改判断条件。
- 注意内层循环中j从0到9,会包括i本身,所以每个元素至少会被自己匹配一次。