Написать рекурсивную функцию поиска минимального элемента одномерного вещественного массива - C (СИ)
Формулировка задачи:
Написать рекурсивную функцию поиска минимального элемента одномерного вещественного массива.
Можно ли это написать как-то проще или по другому.
#include <stdio.h> #include <stdio.h> int * min(const int * arr, const size_t size) { return ( size < 2 ) ? (int*)arr : ( *arr >*(arr + size - 1) ) ? min(arr + 1, size - 1) : min(arr, size - 1); } int main(void){ int arr[5] = { 3, 1, 2, 5, 4 }, i; printf("Array: "); for ( i = 0; i < 5; ++i ) printf("%d ", arr[i]); printf("\nmin element: %d\n", *min(arr, 5)); getch(); return 0; }
Решение задачи: «Написать рекурсивную функцию поиска минимального элемента одномерного вещественного массива»
textual
Листинг программы
int min_1(const int *arr, const size_t size) { if (size < 2) return *arr; else if ((*arr > *(arr + size - 1))) return min_1(arr + 1, size - 1); else return min_1(arr, size - 1); }
Объяснение кода листинга программы
В данном коде представлена рекурсивная функция min_1, которая осуществляет поиск минимального элемента в одномерном вещественном массиве.
- Входные параметры функции:
- arr — указатель на первый элемент массива
- size — размер массива
- Проверка условия: если размер массива меньше или равен 1, то возвращается значение первого элемента, так как в массиве размером 1 нет возможности выбрать элемент меньше первого.
- В случае, если первый элемент больше последнего элемента массива, то возвращается результат вызова функции min_1, в котором указатель на первый элемент массива сдвигается на 1 вправо, а размер массива уменьшается на 1.
- В общем случае, когда первый элемент не является минимальным, функция min_1 рекурсивно вызывается с новым указателем на следующий элемент массива и уменьшенным размером массива.
- Возвращаемое значение — минимальный элемент массива.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д