在线编译器 C

#include <stdio.h> int main() { int a[10], i, j, count; for (i = 0; i < 10; i++) { scanf("%d", &a[i]); } for (i = 0; i < 10; i++) { count = 0; for (j = 0; j < 10; j++) ; { if (a[i] == a[j]) count++; } if (count == 1) { printf("%d", a[i]); } } return 0; }
这段代码的目的是:输入10个整数,然后输出其中只出现一次的元素(即不重复的元素)。但代码中存在一个逻辑错误,导致它无法正确工作。

- 注意内层for循环后面有一个分号,这导致循环体为空,而后面的大括号块实际上是在循环结束后才执行一次,而不是每次循环都执行。你需要检查这个分号的位置。
- 另外,当找到不重复的元素时,每次都会打印,但可能会多次打印同一个元素(例如,如果某个元素出现一次,在遍历到它时打印一次,但后续遍历到其他元素时不会重复打印)。不过当前的主要问题是循环结构错误。