int x[]= {};
не работает, потому что не содержит элементов. Но инициализация его с помощью {}
в C все равно не работает, вместо этого сделайте следующее:
int x[24] = {0}; // first element explicitely set to 0, the rest default-initialized to 0
Вам также нужно поставить {0}
для even
и odd
. Если он компилируется для вас с помощью {}
, то, возможно, вы компилируете его как программу на C ++, или, возможно, ваш компилятор все равно его переносит (но это не сработает на каждом компиляторе C).
scanf
нужен адрес int
, поэтому вместо scanf("%d", x[i]);
вам нужен scanf("%d", &x[i]);
. Но i
- неправильный итератор для этого цикла for (j = 0; j < d; j++)
. Вместо этого сделайте это:
for (j = 0; j < d; j++) {
printf("Enter number %d: ", j + 1); // scanning input into 'x' array
scanf("%d", &x[j]);
}
Также обратите внимание, что при этом половина массива останется на 0
. Например, если я ввел значения от 1
до 6
, тогда odd
содержит значения 1 0 3 0 5 0
.