• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

Не Получается Рекурсия, Подскажите Пожалуйста.

  • Автор темы PadshijAngel
  • Дата начала
P

PadshijAngel

Нужно с помощью рекурсии найти максимальное и минемальное значение в одномерном массиве, ни чего не получается есть пример программы по нахождению только минемального но она тоже работает не правильно:
#include<iostream>
using namespace std;
int min(const int a[], int n, int r)
{ if (n==r) return a[n];
int m = (n+r)/2;
int x = min(a, n, m);
int y = min(a, m+1, r);
if (x<y) return x; else return y;
}
void main()
{int mas[5]={1,2,3,4,5};
int k;
cout<<min(mas,5,k-1);
system("pause");
}
Подскажите пожалуйста как это реализовать?
 
P

PadshijAngel

Я исправила программу с места вызова функции:
void main()
{int mas[5]={1,2,3,4,5};
cout<<min(mas,0,5);
system("pause");
}
Как я поняла так должно было стать правильно но она все равно не работает. Выдает большое какое то число, хотя должна была выдавать 5.
 
D

dmitry003

#include <cstdlib>
#include <iostream>
using namespace std;
int min(const int a[], int n, int r)
{ if (n==r) return a[n];
int m = (n+r)/2;
int x = min(a, n, m);
return x;
}
int max(const int a[], int n, int r)
{ if (n==r) return a[n+1];
int m = (n+r)/2;
int y = max(a, m, r-1);
return y;
}
int main(int argc, char *argv[])
{
int mas[5]={1,2,3,4,5};

cout<<"min = "<<min(mas,0,5)<<"\n";
cout<<"max = "<<max(mas,0,5)<<"\n";
system("PAUSE");

}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!