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