Вывести элементы массива с нечетными номерами в порядке убывания номеров - 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]);
      }

Объяснение кода листинга программы

В данном коде происходит следующее:

  1. В переменной n хранится размер массива a.
  2. В цикле for с переменной i инициирующейся значением n-1 и выполняющейся до тех пор, пока i больше нуля, выполняется следующее:
  3. Условие if проверяет, является ли i четным числом.
  4. Если условие if истинно, то есть i является четным числом, то выводится элемент массива a с индексом i с помощью функции printf.
  5. После каждой итерации цикла i уменьшается на 2. В результате выполнения данного кода будут выведены элементы массива a с нечетными номерами в порядке убывания номеров.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 4.333 из 5
Похожие ответы