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

#include <stdio.h> void change_even_odd(int size, int a[]){ } int main(void) { int size; scanf("%d",&size); int a[size]; for(int i=0;i<size;i++){ scanf("%d",a[i]); } change_even_odd(10,a); return 0; }
这段代码定义了一个空函数 `change_even_odd`,然后在 `main` 中读取数组大小和元素,但调用函数时传入了固定值 `10` 而不是实际大小。另外,`scanf` 读取数组元素时缺少取地址符 `&`。

- 在 `scanf("%d",a[i])` 这一行,`a[i]` 是数组元素的值,不是地址。`scanf` 需要变量的地址才能正确存储输入,所以这里应该使用 `&a[i]`。
- 调用 `change_even_odd(10,a)` 时,第一个参数写死了 `10`,但数组的实际大小是由用户输入的 `size` 决定的。应该把 `size` 传进去,而不是 `10`。