Определить номер первого четного элемента последовательности чисел - C (СИ)

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

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

Даны натуральное число n, действительные числа a1, …,an. Найти номер первого члена последовательности a1, …,an; если четных членов нет, то ответом должно быть число 0. При написании кода у меня возник вопрос. Если пользователь введёт все нечётные числа, то результатом должно быть число 0. Как записать это условие ? Фрагмент моего кода:
#define _CRT_SECURE_NO_WARNINGS
#include 
#include 
 
int main()
{
    setlocale(0, "");
    int *x, a, i, n;
    do
    {   
        printf("Укажите способ ввода данных:\nс консоли (0) или из файла in.txt (1), при вводе из файла работа программы завершается.\n");
        scanf("%d", &a);
        printf("Введите размер массива: ");
        scanf("%d", &n);
        x = (int*)malloc(n * sizeof(int));
        if (a == 0)
        {
            printf("Введите элементы массива :\n");
            for (i = 1; i <= n; i++)
            {
                printf("x[%d] = ", i);
                scanf("%d", &x[i]);
            }
        }
        printf("Укажите способ вывода данных:\nна консоль (0) или в файл in.txt (1), при выводе в файл работа программы завершается.\n");
        scanf("%d", &a);
        if (a == 0)
        {
            for (i = 0; i <= n; i++)
            {
                if (x[i] % 2 == 0)
                {
                    printf("Первый четный член последовательности находится на позиции: %d\n", i);
                    break;
                }
            }
        }
        printf("Хотите повторить ввод исходных данных? Да - 1, Нет - 0: ");
        scanf("%d", &a);
        if (a == 1)
        {
            a = 2;
        }
    } while (a == 2);
}

Решение задачи: «Определить номер первого четного элемента последовательности чисел»

textual
Листинг программы
int firstEven(int *Arr, int n)
{
    int i;
    for (i=0; i<n; i++)
      if (Arr[i]%2==0) return i;
    return -1;
}

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

В данном коде определена функция с именем firstEven, которая принимает два аргумента:

  1. Arr - указатель на массив целых чисел
  2. n - размер массива Внутри функции объявлена переменная i типа int, которая будет использоваться в цикле. Затем следует цикл for, который будет выполняться, пока i меньше n. Внутри цикла проверяется, является ли элемент массива Arr[i] четным числом (проверка Arr[i]%2==0). Если это так, то функция возвращает i (номер четного элемента). Если в массиве нет четных чисел, то функция возвращает -1. Таким образом, функция firstEven предназначена для поиска номера первого четного элемента в массиве.

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

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