Online Compiler C

#include <stdio.h> int main() { int a[10]; int i, j, k; int is; int alr; for (i = 0; i < 10; i++) { scanf("%d", &a[i]); } for (i = 0; i < 10; i++) { is = 0; for (i != j && a[i] == a[j]) { is = 1; break; } } if (!is) continue; alr = 0; for (k = 0; k < i; k++) { if (a[k] == a[i]) { alr = 1; break; } if (!alr) { printf("%d ", a[i]); } } return 0; }
这段代码试图找出数组中重复出现的元素并打印它们,但存在多个语法和逻辑错误。

- 第12行的 `for` 循环语法错误:`for (i != j && a[i] == a[j])` 缺少初始化、条件和增量部分,正确的 `for` 循环需要三个部分。这里应该使用 `if` 或嵌套循环结构。
- 变量 `j` 从未被赋值或初始化,导致比较 `a[i] == a[j]` 时使用未定义的值。
- 第17行的 `continue` 出现在循环外部,无法正确控制流程。
- 第18行之后的内层循环逻辑混乱,`alr` 的检查和打印位置不正确,且缺少外层循环的闭合。