Обменять значения первого четного и последнего нечетного элементов массива - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Дан целочисленный массив А(М). Обменять значения первого четного и последнего нечетного или выдать сообщение, что это невозможно.

Решение задачи: «Обменять значения первого четного и последнего нечетного элементов массива»

textual
Листинг программы
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5.   int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
  6.  
  7.   size_t N = sizeof(a) / sizeof(*a);
  8.  
  9.   int* firstEven = NULL;
  10.   int* lastOdd = NULL;
  11.  
  12.   for (size_t i = 0; i < N; i++)
  13.   {
  14.     if (a[i] % 2 == 0)
  15.     {
  16.       if (firstEven == NULL) firstEven = &a[i];
  17.     }
  18.     else lastOdd = &a[i];
  19.   }
  20.  
  21.   if ((firstEven == NULL) || (lastOdd == NULL)) printf("Operation can not be performed\n");
  22.   else
  23.   {
  24.     int temp = *firstEven;
  25.     *firstEven = *lastOdd;
  26.     *lastOdd = temp;
  27.   }
  28.  
  29.   for (size_t i = 0; i < N; i++) printf("%d ", a[i]);
  30.  
  31.   return 0;
  32. }

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

  1. Объявляется массив a размером 9 элементов.
  2. Вычисляется размер массива N.
  3. Объявляются указатели firstEven и lastOdd, которые будут указывать на первый четный и последний нечетный элементы массива соответственно.
  4. В цикле перебираются все элементы массива.
  5. Если текущий элемент четный (остаток от деления на 2 равен нулю), то в переменную firstEven записывается его адрес.
  6. Если текущий элемент нечетный, то в переменную lastOdd записывается его адрес.
  7. После цикла проверяется, были ли найдены первый четный и последний нечетный элементы.
  8. Если один из них не был найден, выводится сообщение об ошибке и программа завершается.
  9. Если оба элемента были найдены, то значениями temp, firstEven и lastOdd меняются значения этих элементов.
  10. Выводится массив a в формате 1 2 3 4 5 6 7 8 9.

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


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

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

10   голосов , оценка 3.8 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы