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

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

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

Добрый день! Задание: найти минимальный элемент с помощью рекурсии. Сначала сделал с помощью цикла,вот так:
Листинг программы
  1. void Fn2(int *a, int n) //поиск минимального элемента
  2. {
  3. int i, min;
  4. min = *a;
  5. for(i=0; i<n; i++)
  6. {
  7. if(min>*(a+i))
  8. min = *(a+i);
  9. }
  10. printf("Минимальный элемент = %d", min);
  11. printf("\n");
  12. }
все работает, а рекурсия почему-то не хочет:
Листинг программы
  1. int Fn2(int *a, int n, int min, int i) //поиск минимального элемента
  2. {
  3. min = *a;
  4. if (i<n)
  5. {
  6. if(min>*(a+i))
  7. min = *(a+i);
  8. i++;
  9. return Fn2(a, n, min, i);
  10. }
  11. else
  12. return min;
  13. printf("Минимальный элемент = %d", min);
  14. printf("\n");
  15. }
p.s Обращение идёт из главной функции(передача по указателю).

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

textual
Листинг программы
  1. int * min_value(const int * array, const size_t count) {
  2.     return ( count < 2 ) ? (int*)array : min_value(array + ( array[0] > array[count - 1] ), count - 1);
  3. }

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


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

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

15   голосов , оценка 3.533 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы