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