Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //https://vk.com/evgenykravchenko0
- ___ ___ ___
- / /\ ___ / /\ / /\
- / /:/_ /__/\ / /:/_ / /:/_
- / /:/ /\ \ \:\ / /:/ /\ / /:/ /\
- / /:/ /:/_ \ \:\ / /:/_/::\ / /:/ /:/_
- /__/:/ /:/ /\ ___ \__\:\ /__/:/__\/\:\ /__/:/ /:/ /\
- \ \:\/:/ /:/ /__/\ | |:| \ \:\ /~~/:/ \ \:\/:/ /:/
- \ \::/ /:/ \ \:\| |:| \ \:\ /:/ \ \::/ /:/
- \ \:\/:/ \ \:\__|:| \ \:\/:/ \ \:\/:/
- \ \::/ \__\::::/ \ \::/ \ \::/
- \__\/ ~~~~ \__\/ \__\/
- ___
- /__/\ ___ ___
- \ \:\ / /\ / /\
- \ \:\ / /:/ / /:/
- _____\__\:\ /__/::\ /__/::\
- /__/::::::::\ \__\/\:\__ \__\/\:\__
- \ \:\~~\~~\/ \ \:\/\ \ \:\/\
- \ \:\ ~~~ \__\::/ \__\::/
- \ \:\ /__/:/ /__/:/
- \ \:\ \__\/ \__\/
- \__\/
- #include <stdio.h>
- #include <stdlib.h>
- // array - указатель на массив
- // size - размер массива
- // predicate - указатель на функцию, котора€ принимает на вход число - элемент массива, и возвращает 1 если условие выполнено и 0 иначе.
- int find_index(const int *array, int size, int (*predicate)(int))
- {
- if (array == NULL)
- return -1;
- int i;
- for (i = 0; i < size; i ++) // перебираем все элементы массива
- if (predicate(array[i]) == 1) // если значение функции predicate(x) равно единице
- return i; // возвращаем индекс первого элемента для которого выполнилось условие
- return -1; // если в массиве не найден ни один подходящий элемент, возвращаем -1
- }
- // функция, возвращающая 1 если число четное
- int is_odd(int x)
- {
- return x % 3;
- }
- // функци€, возвращающае 1 если число отрицательное
- int in_negative(int x)
- {
- return x > 42;
- }
- int main(int argc, char *argv[])
- {
- int array[5] = { 0 };
- int i;
- printf("Заполните значения элементов массива:\n");
- for (i = 0; i < 5; i ++)
- { // заполняем массив из консоли
- printf("a[%d] = ", i);
- scanf("%d", &array[i]);
- }
- // передаем в функцию в качестве параметра функцию проверки числа на четность
- i = find_index(array, 5, is_odd);
- if (i != -1)
- printf("Индекс первого четного элемента : %d\n", i);
- else
- printf("В массиве не обнаружены четные элементы\n");
- // передаем в функцию в качестве параметра функцию проверки числа на >42
- i = find_index(array, 5, in_negative);
- if (i != -1)
- printf("Индекс первого элемента больше 42: %d\n", i);
- else
- printf("В массиве не обнаружены элементы больше 42 \n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement