Найти минимальный элемент массива используя рекурсию - C (СИ)
Формулировка задачи:
Добрый день! Задание: найти минимальный элемент с помощью рекурсии.
Сначала сделал с помощью цикла,вот так:
все работает, а рекурсия почему-то не хочет:
p.s
Обращение идёт из главной функции(передача по указателю).
void Fn2(int *a, int n) //поиск минимального элемента
{
int i, min;
min = *a;
for(i=0; i<n; i++)
{
if(min>*(a+i))
min = *(a+i);
}
printf("Минимальный элемент = %d", min);
printf("\n");
}int Fn2(int *a, int n, int min, int i) //поиск минимального элемента
{
min = *a;
if (i<n)
{
if(min>*(a+i))
min = *(a+i);
i++;
return Fn2(a, n, min, i);
}
else
return min;
printf("Минимальный элемент = %d", min);
printf("\n");
}Решение задачи: «Найти минимальный элемент массива используя рекурсию»
textual
Листинг программы
int * min_value(const int * array, const size_t count) {
return ( count < 2 ) ? (int*)array : min_value(array + ( array[0] > array[count - 1] ), count - 1);
}