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

#include <stdio.h> int is_two_same(int size, int a[]){ for(int i=0;i<size;i++){ for(int j=i+1;j<size;j++){ if(a[j]==a[i]){ return 1; } } } return 0; } int main() { int x; scanf("%d",&x); int a[x]; scanf("%d",a); int answer; answer=is_two_same(x,a); printf("%d",answer); return 0; }
这段代码定义了一个函数 `is_two_same`,用于检查数组中是否有两个相同的元素。主函数中先读取数组大小 `x`,然后读取数组元素,调用函数并输出结果。但主函数中读取数组的方式有问题。

- 主函数中 `scanf("%d",a)` 只读取了一个整数到数组的第一个位置,而不是读取整个数组。你需要用循环来读取所有数组元素。
- 注意数组 `a` 是变长数组,在 C 标准中某些编译器可能不支持,但这不是主要问题。