Найти минимальный элемент массива используя рекурсию - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Добрый день! Задание: найти минимальный элемент с помощью рекурсии. Сначала сделал с помощью цикла,вот так:
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");
}
p.s Обращение идёт из главной функции(передача по указателю).

Решение задачи: «Найти минимальный элемент массива используя рекурсию»

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);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.533 из 5
Похожие ответы