Online Compiler 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个整数中找出只出现一次的数并输出。但代码中存在语法错误和逻辑问题。

- 第9行 `count = 0 for (j = 0; j < 10; j++);` 缺少分号,并且 `for` 循环后面多了一个分号,导致循环体为空,后面的花括号块变成了独立语句。
- 第10行的花括号 `{` 实际上不属于 `for` 循环,因此 `if` 语句只执行一次,而不是对每个 `j` 都检查。
- 另外,当找到唯一数时,输出没有空格分隔,如果多个唯一数会连在一起。