Проверить имеются ли в массиве элементы, значения которых больше нуля - C (СИ)
Формулировка задачи:
Здравствуйте.
Задан массив А, состоящий из n элементов. Проверить имеются ли в нем элементы, значения которых больше нуля. Если такие элементы имеются, определить наименьшее значение k, при котором A[k]>0.
Решение задачи: «Проверить имеются ли в массиве элементы, значения которых больше нуля»
textual
Листинг программы
#include <stdio.h>
#include <locale.h>
int func(int array[], size_t size) {
size_t i;
for (i = 0; (i < size) && (array[i] <= 0); ++i) { ; }
return (i == size) ? -1 : i;
}
int main() {
setlocale(LC_CTYPE, "RUS");
int A[1000];
int n, k = -1, i;
printf("Введите количество элементов одномерного массива A> ");
scanf("%d", &n);
if ((0 < n) && (n < 1000)) {
for (i = 0; i < n; ++i) {
printf("Ведите элемент массива A[%d]= ", i);
scanf("%d", &A[i]);
}
k = func(A, n);
if (k == -1) {
printf("Положительные элементы не найдены\n");
}
else {
printf("A[%d] = %d\n", k, A[k]);
}
}
else {
printf("\nКоличество элементов в массиве не может быть меньше 1\n\n\a");
}
return 0;
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с консолью и вводом/выводом данных
- Объявление функции
func, которая принимает два аргумента: массивarrayи его размерsize. Внутри функции инициализируется счётчикiдля цикла и начинается проверка каждого элемента массива. Если значение элемента больше нуля, то возвращается его индекс, в противном случае, функция продолжает проверку следующего элемента. Если все элементы меньше или равны нулю, то возвращается -1 - В функции
mainустанавливается русская локаль с помощьюsetlocale, затем инициализируется массивAразмером 1000 элементов и переменныеn,kиi - Пользователю предлагается ввести количество элементов массива
n. Если пользователь ввёл корректное значение (больше 0 и меньше 1000), то начинается заполнение массиваAс помощью циклаfor. После заполнения массива, вызывается функцияfuncдля поиска положительных элементов в массиве. Результат проверки функции сохраняется в переменнойk - Если функция
funcвернула -1, то выводится сообщение об отсутствии положительных элементов в массиве. В противном случае, выводится сообщение с индексом положительного элемента и его значением - Если пользователь ввёл некорректное количество элементов (меньше 1 или больше 1000), то выводится сообщение об ошибке