Дан массив целых чисел. Найти номер первого нечетного элемента - C (СИ)

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

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

Дан массив целых чисел. Найти номер первого нечетного элемента. Помогите

Решение задачи: «Дан массив целых чисел. Найти номер первого нечетного элемента»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <limits.h>
  3.  
  4. int first_odd_index(const int * array, const size_t count) {
  5.     return ( count == 0 ) ? INT_MIN : ( *array & 1 ) ? 0 : 1 + first_odd_index(array + 1, count - 1);
  6. }
  7.  
  8. #define elements_count(arr) ( sizeof(arr) / sizeof(*arr) )
  9.  
  10. int main(void) {
  11.     int a[] = { 2, 3, 4 };
  12.     int b[] = { 1, 2, 3, 4 };
  13.     int c[] = { 2, 2, 2, 2 };
  14.     int d[] = { 4, 0, 4, 0, 1 };
  15.    
  16.     printf("A: %d\n", first_odd_index(a, elements_count(a)));
  17.     printf("B: %d\n", first_odd_index(b, elements_count(b)));
  18.     printf("C: %d\n", first_odd_index(c, elements_count(c)));
  19.     printf("D: %d\n", first_odd_index(d, elements_count(d)));
  20.    
  21.     return 0;
  22. }

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

В данном коде представлен алгоритм поиска первого нечетного элемента в массиве целых чисел. Алгоритм использует рекурсию и базовый случай для остановки рекурсии.

  1. Сначала, в функции first_odd_index, мы проверяем базовый случай, когда массив пуст. Если массив пуст, то возвращаем INT_MIN.
  2. Затем, мы проверяем первый элемент массива на нечетность. Если элемент нечетный, то возвращаем 0, так как первый нечетный элемент найден.
  3. В противном случае, мы рекурсивно вызываем функцию first_odd_index для следующего элемента массива.
  4. Если рекурсивный вызов возвращает 0, то это означает, что следующий элемент массива был нечетным. В этом случае, возвращаем 1 + индекс следующего элемента.
  5. Если рекурсивный вызов возвращает 1, то это означает, что следующий элемент массива был четным. В этом случае, продолжаем рекурсивный поиск.
  6. В функции main, мы создаем несколько тестовых массивов.
  7. Затем, мы вызываем функцию first_odd_index для каждого массива и выводим результат. Список не более 20 элементов:
  8. Массив a: [2, 3, 4]
    • first_odd_index(a, 3): Возвращает 0, так как первый элемент массива нечетный.
  9. Массив b: [1, 2, 3, 4]
    • first_odd_index(b, 4): Возвращает 1, так как первый элемент массива нечетный.
  10. Массив c: [2, 2, 2, 2]
    • first_odd_index(c, 4): Возвращает 2, так как второй элемент массива нечетный.
  11. Массив d: [4, 0, 4, 0, 1]
    • first_odd_index(d, 5): Возвращает 4, так как четвертый элемент массива нечетный.

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


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

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

9   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы