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

مصفوفة ذات بعدين و ترتيبه ترتيب تصاعدي

مغلق
بدأه almsmare في 8 أغسطس 2007 · 3 رد · 2,401 مشاهدة · في الأسئلة المجابة
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

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

انا عندي سؤال و ارجو الحل سريعععععععع .

السؤال هو :

ادخل مصفوفة ذات بعدين و ترتيبه ترتيب تصاعدي ؟

انا عضو جديد و هدا اول طلب لي ... بسرعهههه .

و شكراااااااااااااااااااااااااااااااااااااااااااااااااااااااااااااا :lol:

#2

اخي almsmare

هل تقصد ترتيب عناصر المصفوفه تصاعديا ..؟

#3

انا راح اعطيك الخوارزميه وانت سويها كود ، طبعا ابعاد المصفوفه راح تكون معطاه لك

بكل بساطه انت تحول المصفوفه من بعدين لبعد واحد ، وراح اشرح الطريقه بمثال

نفرض ان عندك مصفوفه

int x[4][10]

معناه ان عندك 40 عنصر يعني لو مصفوفه من بعد واحد تكون

int x[40]

بكل بساطه انت تسوي داله تعطيها رقم العنصر اللي انت تبيع (من 1 الى 40) وهي تطلعه من المصفوفه الاصليه عن طريق اذا كان الرقم المعطى اكبر من 10 تطرح منه 10 وتزيد واحد في البعد الثاني كالتالي

امثله :

لو طلبت منه العنصر رقم 24 راح يقارن ويلاقي ان ارقم اكبر من 10 وبالتالي يطرح عشره ويزيد في البعد الثاني

فيصبح

x[1][14]

ويرجع يقارن مره ثانيه ويلاقي ان ارقم اكبر من 10 فيطرح 10 مره ثانيه ويزيد البعد الثاني واحد فيصير

x[2][4]

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

ارجو ان المثال يكون واضح

تم تعديل هذه المشاركة بواسطة UUNUU في 14 أغسطس 2007 في 22:35

#4

عليك ان تعمل عليها كالجدول العادي

اي تنطلق من الخانة 0 الى n*m -1 حيث n عدد الاسطر و m عدد الاعمدة

for(j=0;j<=(n*m);j++)
for(i=0;i<=(n*m-2);i++)
if x[i/m][i%m]>x[(i+1)/m][(i+1)%m]
{
c=x[i/m][i%m];
x[i/m][i%m]=x[(i+1)/m][(i+1)%m];
[(i+1)/m][(i+1)%m]=c;
}

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

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