Найти последний нечётный элемент массива - C (СИ)
Формулировка задачи:
нужна ваша подсказка, как найти последний нечётный элемент массива
первый чётный элемент вроде находится так
а как найти последний не чётный?
for (int i = 0; i < N; ++i) { if (a[i] % 2 == 0) return i; }
Решение задачи: «Найти последний нечётный элемент массива»
textual
Листинг программы
typedef struct { int firstEven, lastOdd; } indexes; indexes f(int *a, const int N) { indexes ret = { .firstEven = -1, .lastOdd = -1 }; for (int i = 0; i < N; ++i) { if (ret.firstEven == -1 && a[i] % 2 == 0) ret.firstEven = i; if (a[i] % 2 != 0) ret.lastOdd = i; } return ret; } int sumElements(int *a, int start, int end) { int sum = 0; while(start <= end) sum += a[start++]; return sum; }
Объяснение кода листинга программы
В данном коде представлены две функции:
- *f(int a, const int N)** - функция для поиска последнего нечётного элемента в массиве.
Принимает два аргумента:
- a - указатель на первый элемент массива.
- N - размер массива. В функции создаётся структура indexes с полями:
- firstEven - индекс первого чётного элемента (включая 0). Если в массиве нет чётных элементов, то -1.
- lastOdd - индекс последнего нечётного элемента. Если в массиве нет нечётных элементов, то -1. Затем происходит итерация по всем элементам массива. Если текущий элемент чётный и firstEven ещё не определено, то firstEven принимает значение текущего индекса. Если текущий элемент нечётный и lastOdd ещё не определено, то lastOdd принимает значение текущего индекса. В конце функции возвращается структура indexes.
- *sumElements(int a, int start, int end)** - функция для вычисления суммы элементов массива.
Принимает три аргумента:
- a - указатель на первый элемент массива.
- start - начальный индекс (включая 0).
- end - конечный индекс (не включая 1). В функции происходит итерация от start до end с шагом 1. На каждой итерации значение элемента массива прибавляется к сумме. В конце функции возвращается сумма.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д