Обменять значения первого четного и последнего нечетного элементов массива - 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
.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д