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

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

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

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

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

textual
Листинг программы
#include <stdio.h>
 
int main(void)
{
  int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
  
  size_t N = sizeof(a) / sizeof(*a);
  
  int* firstEven = NULL;
  int* lastOdd = NULL;
  
  for (size_t i = 0; i < N; i++)
  {
    if (a[i] % 2 == 0)
    {
      if (firstEven == NULL) firstEven = &a[i];
    }
    else lastOdd = &a[i];
  }
  
  if ((firstEven == NULL) || (lastOdd == NULL)) printf("Operation can not be performed\n");
  else
  {
    int temp = *firstEven;
    *firstEven = *lastOdd;
    *lastOdd = temp;
  }
  
  for (size_t i = 0; i < N; i++) printf("%d ", a[i]);
  
  return 0;
}

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

  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
Похожие ответы