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

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

PadshijAngel

#1
Нужно с помощью рекурсии найти максимальное и минемальное значение в одномерном массиве, ни чего не получается есть пример программы по нахождению только минемального но она тоже работает не правильно:
#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

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

dmitry003

New member
12.05.2009
4
0
#3
#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");

}