Найти последний нечётный элемент массива - 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;
}

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

В данном коде представлены две функции:

  1. *f(int a, const int N)** - функция для поиска последнего нечётного элемента в массиве. Принимает два аргумента:
    • a - указатель на первый элемент массива.
    • N - размер массива. В функции создаётся структура indexes с полями:
    • firstEven - индекс первого чётного элемента (включая 0). Если в массиве нет чётных элементов, то -1.
    • lastOdd - индекс последнего нечётного элемента. Если в массиве нет нечётных элементов, то -1. Затем происходит итерация по всем элементам массива. Если текущий элемент чётный и firstEven ещё не определено, то firstEven принимает значение текущего индекса. Если текущий элемент нечётный и lastOdd ещё не определено, то lastOdd принимает значение текущего индекса. В конце функции возвращается структура indexes.
  2. *sumElements(int a, int start, int end)** - функция для вычисления суммы элементов массива. Принимает три аргумента:
    • a - указатель на первый элемент массива.
    • start - начальный индекс (включая 0).
    • end - конечный индекс (не включая 1). В функции происходит итерация от start до end с шагом 1. На каждой итерации значение элемента массива прибавляется к сумме. В конце функции возвращается сумма.

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


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

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

11   голосов , оценка 3.909 из 5
Похожие ответы