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

#include <stdio.h> int main() { int a[10]; int flag=0; for (int i = 0; i < 10; i++) { scanf("%d", &a[i]); } for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { if (a[i] = a[j]&&i!=j) flag=1} } if (flag=0) printf("%d",a[i]); } } return 0; }
这段代码试图找出数组中只出现一次的元素,但存在多个语法和逻辑错误。

- 第10行 `if (a[i] = a[j]&&i!=j)` 中使用了赋值运算符 `=` 而不是比较运算符 `==`,这会导致条件判断错误。同时缺少右括号,并且 `flag=1` 后面缺少分号。
- 第14行 `if (flag=0)` 同样使用了赋值运算符,应该用 `==` 进行比较。另外,`printf` 中的 `a[i]` 在循环外无法访问,因为 `i` 已经超出作用域。