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

تنبيه(عنوان غير مناسب ) مساعدة يا أصحاب الخبرة .. ضروري للغاية

بدأه لسة بدري في 17 يوليو 2009 · 13 رد · 1,168 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

تحية طيبة وبعد

إخواني/ أخواتي

لدي مشكلة في واجب سي بلس من الجامعة

أحتاج مساعدتكم بشدة

البرنامج يطلب من المستخدم إدخال 10 أرقام

إن كان هناك أرقام مكررة يجب وضعها في مجموعة وتسميتها بذلك الرقم وعرض هذا الرقم في هذه المجموعة

وهذا هو البرنامج كما هو

Problem

Write a program that prompts the user to enter 10 numbers, then determine the following and display

them to the user:

• The smallest number.

• The largest number.

• Their average.

• Their sum.

• Their product.

• If there are equal numbers, group them and display each group on a separate line where the

numbers within each group are separated by a tap space.

لقد استطعت تنفيذ أول 5 مطاليب لكن المشكلة في آخر مطلوب

ساعدوني جزاكم الله خيراً

إخواني قرأت في القوانين أنه لكي تساعدوني يجب أن أكون قد حاولت وليس الاعتماد عليكم

أنا لا أريد الحل بالكود

لقد حللت كل السؤال وبقت آخر فكرة

أريد فكرة حل آخر فقرة من السؤال لا أكثر

#2

تفضل اخوي فكرتي حسب مافهمت انو هيكون هنالك مصفوفة ذات بعدين تحتوي البعد الاول يحتوي على الاعداد بدون تكرار والبعد الاخر يحتوي على العدد حسب مرات التكرار

ان شاء الله يفيدك هذا الكود

  1.  
  2. int n[9];
  3. int m[9][9];
  4. int d=0;
  5. int flag;
  6. for(int x=0;x<10;x++){
  7. cin>>n[x];}
  8. //////////First Step //////////
  9. for(int x=0;x<10;x++){
  10. flag=0;
  11. for(int j=x;j<10;j++){
  12. if(n[x]==n[j]){
  13. flag++;
  14. }}
  15. if(flag==1){
  16. m[d][0]=n[x];
  17. d++;}}
  18. /////////Second Step ///////////
  19. for(int x=0;x<d;x++){
  20. flag=-1;
  21. for(int j=0;j<10;j++){
  22. if(m[x][0]==n[j]){
  23. flag++;
  24. if(flag>-1){
  25. m[x][flag]=n[j];}}}
  26. for(int r=0;r<=flag;r++){
  27. cout<<m[x][r];}
  28. cout<<endl;}
  29.  

#3

أخي الكريم والله انا ما بعرف بالمصفوفات

لكن هي البرنامج الي أنا كاتبه لحد الآن

بيعمل أول 5 مطاليب

بس مطلوب تكرار الأرقام مش عارف كيف أعمله :(

#include <iostream>

#include <iomanip>

using namespace std;

int main ()

{

double x1,x2,x3,x4,x5,x6,x7,x8,x9,x10,max=0,min=0,sum=0,av=0,pro=0;

int x,x1c=0,x2c=0,x3c=0,x4c=0,x5c=0,x6c=0,x7c=0,x8c=0,x9c=0;

cout << "Enter (10) Numbers Please ^_^ \n";

/////////////////////////////////////////////////////

cout << "Number 1 is : ";

cin >>x1;

min = x1;

max = x1;

////////////////////////////////////////////////////

cout << "Number 2 is : ";

cin >> x2;

if (x2>max)

max=x2;

else if (x2<min)

min=x2;

////////////////////////////////////////////////////

cout << "Number 3 is : ";

cin >> x3;

if (x3>max)

max=x3;

else if (x3<min)

min=x3;

////////////////////////////////////////////////////

cout << "Number 4 is : ";

cin >> x4;

if (x4>max)

max=x4;

else if (x4<min)

min=x4;

////////////////////////////////////////////////////

cout << "Number 5 is : ";

cin >> x5;

if (x5>max)

max=x5;

else if (x5<min)

min=x5;

////////////////////////////////////////////////////

cout << "Number 6 is : ";

cin >> x6;

if (x6>max)

max=x6;

else if (x6<min)

min=x6;

////////////////////////////////////////////////////

cout << "Number 7 is : ";

cin >> x7;

if (x7>max)

max=x7;

else if (x7<min)

min=x7;

////////////////////////////////////////////////////

cout << "Number 8 is : ";

cin >> x8;

if (x8>max)

max=x8;

else if (x8<min)

min=x8;

////////////////////////////////////////////////////

cout << "Number 9 is : ";

cin >> x9;

if (x9>max)

max=x9;

else if (x9<min)

min=x9;

////////////////////////////////////////////////////

cout << "Number 10 is : ";

cin >> x10;

if (x10>max)

max=x10;

else if (x10<min)

min=x10;

////////////////////////////////////////////////////

////////////////////////////////////////////////////

sum =x1+x2+x3+x4+x5+x6+x7+x8+x9+x10;

av=sum/10;

pro = x1*x2*x3*x4*x5*x6*x7*x8*x9*x10;

////////////////////////////////////////////////////

cout << fixed << setprecision(2);

cout <<"\nThe Smallest Number is :"<< min <<"\n";

cout <<"\nThe Largest Number is :"<< max << "\n";

cout <<"\nThe Average Of The Numbers is : " << av << "\n";

cout <<"\nThe Sum Of The Numbers is : " << sum << "\n";

cout <<"\nThe Product Of The Numbers is : " << pro << "\n\n";

////////////////////////////////////////////////////

return 0;

}

تم تعديل هذه المشاركة بواسطة لسة بدري في 17 يوليو 2009 في 22:09

#4

أتوقع هذا مافهمته بخصوص المطلب الخامس

#include <iostream>

using namespace std;


main()
{
	int Num[10];
	for(int i=0;i<10;i++)
	{
		cout<<"Enter Num("<<i+1<<"):";
		cin>>Num;
	}
cout<<"Display:"<<endl;
	for( i=0;i<10;i++)
	{
		int Count=0;
		for(int j=0;j<10;j++)
		{
			if(Num==Num[j])
				Count++;
		}
		if(Count==1)
			cout<<Num<<endl;
		else
		{
			cout<<"Group("<<Num<<"):";
			for(int h=0;h<Count;h++)
				cout<<Num<<"\t";
			cout<<endl;
		}
i+=Count-1;
	}

	return 0;
}
llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#5
time1 كتب:
أتوقع هذا مافهمته بخصوص المطلب الخامس

#include <iostream>

using namespace std;


main()
{
	int Num[10];
	for(int i=0;i<10;i++)
	{
		cout<<"Enter Num("<<i+1<<"):";
		cin>>Num;
	}
cout<<"Display:"<<endl;
	for( i=0;i<10;i++)
	{
		int Count=0;
		for(int j=0;j<10;j++)
		{
			if(Num==Num[j])
				Count++;
		}
		if(Count==1)
			cout<<Num<<endl;
		else
		{
			cout<<"Group("<<Num<<"):";
			for(int h=0;h<Count;h++)
				cout<<Num<<"\t";
			cout<<endl;
		}
i+=Count-1;
	}

	return 0;
}

الله يجزيك ألف خير أخي

لكن بقيت مشكلة صغيرة

وهي إنه إذا كانت الأرقام المتكررة متتالية فإن البرنامج يعمل بشكل جيد

لكن إن كانت مكررة بشكل غير متتالي يتم تكرار المجموعة

#6

أخي لقد عدلت على

i+=Count-1;

لتصبح

i+=Count;

وقد تخطيت المشكلة لكن ظهرت مشكلة عرض الرقم الغير مكرر :(

#7

اجري عليها تعديلاتك البسيطة ..

#include <iostream>

using namespace std;


main()
{
	int Num[10];
	for(int i=0;i<10;i++)
	{
		cout<<"Enter Num("<<i+1<<"):";
		cin>>Num;
	}
cout<<"Display:"<<endl;

	for( i=0;i<10;i++)
	{
		bool New=true;

		for(int m=0;m<i;m++)
			if(Num==Num[m])
				New=false;		

			if(New==true)
			{

				int Count=0;
				for(int j=i;j<10;j++)
					{
						if(Num==Num[j])
						Count++;
					}
				if(Count==1)
				cout<<Num<<endl;
				else
					{
						cout<<"Group("<<Num<<"):";
						for(int h=0;h<Count;h++)
						cout<<Num<<"\t";
						cout<<endl;
					}
			}
	}

	return 0;
}
llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#8

بارك الله فيك أخي ما قصرت

ما زالت مشكلة عرض الرقم الغير مكرر قائمة

لكن سأحاول أن أحلها بنفسي

لو كان لديك وقت لتحلها فافعل وإن لم يكن لا مشكلة

كفيت ووفيت

^_^

#9

أعطيني 10 مدخلات على سبيل المثال لكي ارى المشكلة

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#10

أخي أنا أدخلت هذه المدخلات

1 2 2 3 3 4 5 5 6 7

#11

حسنا مالمشكلة ؟

1:غير مكرر

2:مكرر مرتين

3:مكرر مرتين

4:غير مكرر

5:مكرر مرتين

6:غير مكرر

7:غير مكرر

وهذه النتيجة

post-82612-1247865497_thumb.jpg

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#12

المشكلة أخي كما تفضلت بصورة النتيجة

أن الأرقام الغير مكررة وهي 1 و 4 و 6 و 7 تعرض في البرنامج

#13

تقصد بأنك لاتريدها ان تعرض ؟

هكذا ؟

#include <iostream>

using namespace std;


main()
{
	int Num[10];
	for(int i=0;i<10;i++)
	{
		cout<<"Enter Num("<<i+1<<"):";
		cin>>Num;
	}
cout<<"Display:"<<endl;

	for( i=0;i<10;i++)
	{
		bool New=true;

		for(int m=0;m<i;m++)
			if(Num==Num[m])
				New=false;		

			if(New==true)
			{

				int Count=0;
				for(int j=i;j<10;j++)
					{
						if(Num==Num[j])
						Count++;
					}
				if(Count!=1)
					{
						cout<<"Group("<<Num<<"):";
						for(int h=0;h<Count;h++)
						cout<<Num<<"\t";
						cout<<endl;
					}
			}
	}

	return 0;
}

تم تعديل هذه المشاركة بواسطة time1 في 18 يوليو 2009 في 00:35

llback.jpg

اشهد ان لا إله إلا الله وان محمدا ً رسول الله

#14

بالضبط أخي

الله يجزيك ألف ألف ألف ألف خير ما قصرت

^_^

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

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…