Вывести элементы массива с нечетными номерами в порядке убывания номеров - C (СИ)
Формулировка задачи:
Дан массив A размера N (N — нечетное число). Вывести его элементы с нечетными номерами в порядке убывания номеров: AN, AN−2, AN−4, ..., A1. Условный оператор не использовать.
Мой код :
Просто не понимаю почему код не работает.
Компилятор ошибку не выдаёт, но выводит совсем другое.
int n;
int n;
printf("Введите размер массива(только нечётное число) :");
scanf("%d",&n);
int a[n];
for(int i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(int i=n;i>=1;i=i-2)
{
if((i%2)!=0)
printf("%d\n",a[i]);
}
}Решение задачи: «Вывести элементы массива с нечетными номерами в порядке убывания номеров»
textual
Листинг программы
for(int i=n-1;i>-1;i-=2)
{
if((i%2)==0)
printf("%d\n",a[i]);
}
Объяснение кода листинга программы
В данном коде происходит следующее:
- В переменной
nхранится размер массиваa. - В цикле
forс переменнойiинициирующейся значениемn-1и выполняющейся до тех пор, покаiбольше нуля, выполняется следующее: - Условие
ifпроверяет, является лиiчетным числом. - Если условие
ifистинно, то естьiявляется четным числом, то выводится элемент массиваaс индексомiс помощью функцииprintf. - После каждой итерации цикла
iуменьшается на 2. В результате выполнения данного кода будут выведены элементы массиваaс нечетными номерами в порядке убывания номеров.