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

Array مهم

بدأه بيرووو في 20 يناير 2009 · 12 رد · 926 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

مرحبــــــــــا.....

في البداية بكتب البرنامج:

#include<iostream.h>
void main()
{
int A[3][4]={8,5,4,20,12,15,18};
for(int i=0;i<3;i++)
	for(int j=0;j<4;j++)
	  if(A[j]>A[j+1]
	   int temp=A[j];
	   A[j]=A[j+1];
	   A[j+1]=temp;
for(i=0;i<3;i++)
   for(j=0;j<4;j++)
	 cout<<A[j];
}

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

output يكون في هالشكل

4   5   8   12
15 18  20  0
0   0   0	0

ولكن المشكله عندي أنه يبدأ يقارن الأعداد مع الصفر وأنا ماأبغى يقارنه...ويطلع output في هالشكل

0   0	0	0
0   4	5	8
12 15  18  20

ياليت لو أحد يعرف يحل المشكلة مايبخل علي في الرد....وأكون ممنونه

تم تعديل هذه المشاركة بواسطة بيرووو في 20 يناير 2009 في 16:54

#2

هل هذا ماتريد:

  1. #include<iostream.h>
  2. int main()
  3. {
  4. int i,j,temp;
  5. int A[3][4]={8,5,4,20,12,15,18};
  6. for( i=0;i<3;i++)
  7. {
  8. for( j=0;j<4;j++)
  9. {
  10. if(A[i][j]>A[i][j+1])
  11. {
  12. temp=A[i][j];
  13. A[i][j]=A[i][j+1];
  14. A[i][j+1]=temp;
  15. }
  16. }
  17. }
  18. for( i=0;i<3;i++)
  19. {
  20. for( j=0;j<4;j++)
  21. cout<<A[i][j]<<" ";
  22. cout<<endl;
  23. }
  24.  
  25.  
  26. }
  27.  

tvquran_6.gif

#3

هل المطلوب مصفوفه ذات بعدين 3*4

لانه من الممكن عمل مصفوفه ذات بعد واحد 12

لانها اسهل للتعامل

لانه الكود الموجود يقارن الصفوف فقط لذلك راح يكون الصف مرتب وليس المصفوفه بأكملها

وايضا من الممكن ان يسبب مشكله لانه الشرط في

for(int j=0;j<4;j++)

وبعد كذا تستخدم

A[j+1]

لانه في اخر لوب تكون قيمة

j=3

هذا ما اعتقد إذا فيه خطاء ارجوا توضيح ذلك

تم تعديل هذه المشاركة بواسطة voo في 20 يناير 2009 في 18:27

متغيب

#4

vvo شكر ا لك على ملاحظتك وضعت الكود على عجل .

  1. #include<iostream.h>
  2. int main()
  3. {
  4. int i,j,t,s,temp;
  5. int A[3][4]={8,5,4,20,12,15,18};
  6. for( i=0;i<3;i++)
  7. {
  8. for( j=0;j<4;j++)
  9. {
  10. for(t=0;t<3;t++)
  11. {
  12. for(s=0;s<4;s++)
  13. {
  14. if(A[i][j]>A[t][s])
  15. {
  16. temp=A[i][j];
  17. A[i][j]=A[t][s];
  18. A[i][j]=temp;
  19. }
  20. }
  21. }
  22. }
  23. }
  24. for( i=0;i<3;i++)
  25. {
  26. for( j=0;j<4;j++)
  27. cout<<A[i][j]<<" ";
  28. cout<<endl;
  29. }
  30.  
  31.  
  32. }
  33.  

tvquran_6.gif

#5

جرب الكود هذا

  1. #include<iostream.h>
  2. void main()
  3. {
  4. int ss=0,n=1,row=3,col=4;
  5. int sizearry=row*col;
  6.  
  7. int A[sizearry];
  8. for(int i=0;i<sizearry;i++)
  9. A[i]=ss;
  10. A[sizearry]={8,5,4,20,12,15,18};
  11.  
  12. for(int i=0;i<sizearry;i++)
  13. {
  14. for(j=0;j<sizearry;j++)
  15. {
  16. n=1;
  17. while(A[j]!=ss)
  18. {
  19. while(A[j+1]==ss)n++;
  20. if(A[j]>A[j+n])
  21. int temp=A[j];
  22. A[j]=A[j+n];
  23. A[j+n]=temp;
  24. }
  25. }
  26. }
  27. n=col;
  28. for(i=0;i<sizearry;i++)
  29. {
  30. cout<<A[i];
  31. cout<<" ";
  32. if(n==i+1)
  33. {
  34. cout<<lend;
  35. n+=i;
  36. }
  37. }
  38. }
  39.  
  40.  

مع العلم اني لم اجربه لاني لا املك مترجم

وضع في ss ما تريد حيث انها هي ما يحل محل 0 في المثال

تم تعديل هذه المشاركة بواسطة voo في 20 يناير 2009 في 19:47

متغيب

#6

لا هي تقصد انها تبغى كود يرتب مصفوفه

بحيث انو لو كانت المصفوفه 3×4 ودخلنا 9 عناصر غير مرتبه راح يرتبها تصاعدي

لكن احنا نواجهه مشكله انو يرتب كل العناصر لكن العنصر الاخير الي هو الكبير راح يقارنه بالاصفار

لذك راح يكون هو الاخير والاصفار قبله وهذا خطأ

يعني لو ادخلنا هذي المصفوفه

11 4 12 5

6 3 20 0

0 0 0 0

يطلع لنا ال output

3 4 5 6

11 12 0 0

0 0 0 20

واحنا نبغى يكون ال output

3 4 5 6

11 12 20 0

0 0 0 0

ساعدونا لاننا نواجهه نفس المشكله

تم تعديل هذه المشاركة بواسطة طمـــوح في 20 يناير 2009 في 20:36

#7
  1. #include<iostream.h>
  2. void main()
  3. {
  4. int ss=0,n,row=3,col=4;
  5. int sizearry=row*col;
  6. int A[sizearry]={8,5,4,20,12,15,18};
  7. for(int i=0;i<sizearry;i++)
  8. A[i]=ss;
  9. for(int i=0;i<sizearry;i++)
  10. {
  11. int j;
  12. do
  13. {
  14. while(A[j]==ss)j++;
  15. n+=j;
  16. while(A[n]==ss)n++;
  17. if(A[j]>A[n])
  18. int temp=A[j];
  19. A[j]=A[n];
  20. A[n]=temp;
  21. j=n;
  22. }while(j<sizearry);
  23. }
  24. n=col;
  25. for(int i=0;i<sizearry;i++)
  26. {
  27. cout<<A[i];
  28. cout<<" ";
  29. if(n==i+1)
  30. {
  31. cout<<lend;
  32. n+=i;
  33. }
  34. }
  35. }
  36.  
  37.  

طبعا

ss=0;

على حسب الرغبه

وكذلك الكود هذا لمصفوفه من بعد واحد

إذا تبي بعدان نفس الفكره

تم تعديل هذه المشاركة بواسطة voo في 20 يناير 2009 في 20:46

متغيب

#8

اخويvoo مشكووووور

لكن في الكود الاخير يطلع فيه error كثيره واذا صلحته مايتطبق البرنامج ؟؟؟!!

#9

اخوي فهد الكود الي نزلته مايرتب كل العناصر :( !!!!

#10

سطر 18 عدل الي :

  1. A[t][s]=temp;
  2.  

tvquran_6.gif

#11

شكــــــــرا ع الإهتمام

ولكن بالنسبة لكود الأخ فهد الشلوي يطلع نفس المشكله إلى انا اواجهها في برنامجي

وحاولت على كود الأخ voo

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

ممكن اكون ماوضحت فكرة البرنامج بالكامل

من شروط البرنامج انه المصفوفة تكون دات بعدين و يقارن كل عنصر بالعناصر الي بعده بحيث يرتبهم ترتيب تصاعدي والخانات المتبقية ممكن أفرض أي قيمة أو شكل معين مثلا"\"...فكرت في حل

وهو إني أعمل Break

مثلا:

المصفوفة المفروض تكون في هالشكل

4	5	 8	 12
15  18	20	0
0	0	 0	  0

عند الخانه التي في الصف الثاني العمود الثالث أعمل لها شرط وهو

if i==1&&j==3
break;

ممكن في هالطريقة يخرج من غير مايقارن العناصر بالصفر

ياليت تعطوني رأيكم في الحل؟؟؟؟

#12

إذا كنت لا تريد ادخال الخاليه في المقارنه نضع شرط فقط :

  1. #include<iostream.h>
  2. int main()
  3. {
  4. int i,j,t,s,temp;
  5. int A[3][4]={8,5,4,20,12,15,18};
  6. for( i=0;i<3;i++)
  7. {
  8. for( j=0;j<4;j++)
  9. {
  10. for(t=0;t<3;t++)
  11. {
  12. for(s=0;s<4;s++)
  13. {
  14. if(A[i][j]<A[t][s] && A[i][j]!=0 )
  15. {
  16.  
  17. temp=A[i][j];
  18. A[i][j]=A[t][s];
  19. A[t][s]=temp;
  20.  
  21. }
  22. }
  23. }
  24. }
  25. }
  26. for( i=0;i<3;i++)
  27. {
  28. for( j=0;j<4;j++)
  29. cout<<A[i][j]<<" ";
  30. cout<<endl;
  31. }
  32.  
  33. cin.get();
  34. }
  35.  

هل هذا ماتريد ؟

tvquran_6.gif

#13

شكــــــــــرآ جزيـــــــــــــلآ

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