سلام.
من میخوام یه کد بنویسم که max و min رو در یک آرایه حساب کنه ولی به روش تقسیم و حل و بازگشتی ولی نمیدونم چه جوری باید شروع کنم لطفا کمک کنید.
سلام.
من میخوام یه کد بنویسم که max و min رو در یک آرایه حساب کنه ولی به روش تقسیم و حل و بازگشتی ولی نمیدونم چه جوری باید شروع کنم لطفا کمک کنید.
سلام ، روش اینطوری هستش که شما آرایه رو به دو قسمت تقسیم می کنید ، و بطور بازگشتی
Min , Max هریک از این دو قسمت رو پیدا می کنید و Min , Max کل میشه Min , Max این دو قسمت !!!
موفق و پیروز باشید !!!
درسته منم تا این قسمتش رو میدونستم.
ولی حالا چه جوری میشه این تابع رو پیاده کرد؟
با سلام.
آرایه را به روش بازگشتی مرتب کن.
عناصر اول و آخر موارد درخواستی میشوند.
خدانگهدار.
من این کد رو با راهنمایی های دوستان نوشتم ولی نمیدونم مشکلش چیه؟
چون اجرا میشه ولی وسط کار erorr میده.
اینم سورسش:
void maxmin(int *max, int *min,int n)
{
if( n == 1)
*min = *max = a[0];
else if( n == 2)
{
if(a[0] < a[1])
{
*min = a[0];
*max = a[1];
}
else
{
*min = a[1];
*max = a[0];
}
}
else
{
maxmin(max,min,n/2);
maxmin(&max1,&min1,n - n/2);
if( min1 < *min)
*min = min1;
if( max1 > *max)
*max = max1;
}
}
کسی نظری نداره.................
فکرکنم تو داخل تابع باید بجای *min بنویسی &min
درست نمیگم؟
از دوستان کسی می تونه در مورد کد بالا بیشتر توزیح بده این ارور وسط کار از چی ؟
کسی نیست یه توضیح در مورد این کد بده ؟
سلام :
کد زیر رو امتحان کن امیدوارم مشکلت حل بشه.
موفق باشید.
#include <iostream.h>
void MinMax(int *Min, int *Max, int *a, int n)
{
if(--n>=0 ){
if( *Max < a[n] ) *Max = a[n];
if( *Min > a[n] ) *Min = a[n];
MinMax( Min, Max, a, n);
}
}
#define MaxNum 5
int main()
{
int max, min, a[MaxNum];
for(int i=0; i<MaxNum; i++)
cin>>a[i];
max = min = a[0];
MinMax( &min, &max, a, MaxNum);
cout<<"Max="<<max<<" Min="<<min;
return 0;
}