الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

ممكن مساعده في الكود

مغلق
بدأه Andromeda في 4 مارس 2006 · 7 رد · 657 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع
:( #include<iostream.h>
int recursivemax(int a[],int first,int last)
{

if(first==last)
return a[first];
else
if(last>first){
int middle=(first+last)/2;
int x=recursivemax(a,first,middle);
int b=recursivemax(a,middle+1,last);
if(x>b)
return x;
else 
return b;}}
int main()
{
int a[4];
int z,x;
cout<<recursivemax(a,z,x); 
return recursivemax(a,z,x);}

بليز ابي اعرف شنو مشكله الكود ليش مايطلع الماكسيمم؟؟

#2

يعني معقوله مافي احد يعرف شنو الغلط؟؟؟ :(

#3
Andromeda كتب:
:( #include<iostream.h>
int recursivemax(int a[],int first,int last)
{

if(first==last)
return a[first];
else
if(last>first){
int middle=(first+last)/2;
int x=recursivemax(a,first,middle);
int b=recursivemax(a,middle+1,last);
if(x>b)
return x;
else 
return b;}}
int main()
{
int a[4];
int z,x;
cout<<recursivemax(a,z,x); 
return recursivemax(a,z,x);}

بليز ابي اعرف شنو مشكله الكود ليش مايطلع الماكسيمم؟؟

#5

وضح سؤالك .. ما هي فكرتك من الكود؟

قل مثلاً: أنا وضعت هذا الأمر بهذه الطريقة لكي........ الخ.

ثانيا: هل استعمال الـ recursive مطلوب منك؟

اذا لم يكن هو المطلوب فلا أنصح باستخدامها.

وشكراً.

#6

السلام عليكم ورحمة الله

اولا اريد ان اشير الى ملاحظة صغيرة(انا بنت ولست ولد)

عفواً لاني لم اوضح السؤال

الrecursive مطلوب في السؤال وفكرة السؤال ان اقسم الarray

الى قسمين واوجد في كل قسم الmax بعد ذالك اقارن بينهم لاحصل على max الذي يكون هو الكبر في الarray

وارجعه.

هذا كل المطلوب في السؤال

شكراً وجزاكم الله خير على الرد.

#7

اول حاجة لازم فيم فى الدالة الرئيسة.

ابسط حاجة

int a[4];
a[0]=1;
a[1]=3;
a[2]=5;
a[3]=4;
int z,x;

و بعدين نعرف نراجع

#8

اعتقد انه يعمل الان

المشكلة الاساسية استعمال المتغرات بدن قيم

المعالج يعطى تحزير بان ليس كل المسارا لها return

لان عبار if(last>first)

ليس لها else

و عموماً يفضل ان نجد return

فى اخر سطر

اطيب التمنيات

#include<iostream.h>

int recursivemax(int a[],int first,int last)
{

	if(first==last){
  return a[first];
	}else{
  if(last>first){
 	 int middle=(first+last)/2;
 	 int x=recursivemax(a,first,middle);
 	 int b=recursivemax(a,middle+1,last);
 	 if(x>b)
    x;
 	 else
    return b;
  }
	}
	cout << "Bad index range last< first ---> Random Value May be expected\n";
	return 0;
}

int main()
{
	int a[4];
	a[0]=9;
	a[1]=3;
	a[2]=5;
	a[3]=14;
	int z=0,x=3;
	cout<<recursivemax(a,z,x);
	cout.flush();
	return recursivemax(a,z,x);
}

هذا الموضوع مغلق.

مواضيع مشابهة