رد: الكود الصحيح لواجب لاب 10 وفكرته مهمه في الاختبار
مشكور للجميع على الرد
وحبيبي ما ودي اقول مهموم وان شاء الله تكون مرتاح وبدون اي هم
فكرة السؤال هوا قلك انه اقصى قيمة تكون 50 يعني لو اكثر من 50 المفروض البرنامج ما راح يقبلها وراح يعطيه رن تايم ايرور وتقدر تضيف شرط انه اذا القيمة اللي ادخلها اليوزر اكبر من 50 يطلعله ايرور ويخليه يرجع يكتب القيمة
فالنفرض انك حطيت السايز 10 وهنا كانك خليت اليوزر يدخل طول الاري ومعناها انه راح يتعامل فقط مع 10 خانات وكانك مسوي اري السايز حقها 10 كانت هذه الفكرة انه اليوزر هوا اللي تحكم في عدد عناصر الاري ولكن بشرط انها ما تكون اكثر من 50
واللي يسير في البرنامج اول شي ياخذ كل القيم من اليوزر وزي ما قلنا راح تكون 10 قيم
مثلا 1,2,3,0,0,4,5,6,0,7
بعدها راح نشوف كم صفر في السؤال وكل ما نلاقي صفر راح نزيد قيمة المتغير z بواحد
ففي السؤال عندنا 3 اصفار فراح تكون قيمة الz بثلاثه وبعدها عملنا لوب تتكر بعد ممرات وجود الاصفار
يعني راح تتكرر ثلاث مرات وداخل اللوب هذه في لوب ثانية وهيا لوب الترتيب
وفكرة الترتيب راح تكون اذا كان العنصر صفر يشوف العدد اللي جنبه ويبدل مكانه معاه وهكذا طيب ممكن تقولي هذا اللوب يكفي راح اقلك لا ليش لانه لو وصل لمنطقة الصفرين راح يبدل الصفر بصفر ويروح للخانه اللي بعدها وبكذا راح يطلعلك صفر وقت الطباعة
فحليت المشكلة هذه انو لوب الترتيب راح تنعاد كاملة بعدد مرات الاصفار والان الاصفار راحت للاخير والاري زي ماهيا ما اتغير في اماكنها غير انو لو كان في صفر العدد اللي بعد الصفر راح يجي مكانه يعني غير مرتبه وهذا كان طلب السؤال انه بدون ترتيب تصاعدي او تنازلي بس ترتب اماكن الاعداد وتحذف الاصفار الان لما نجي في الطباعة
راح نخلي شرط لوب الطباعة
(i<(size-z
والسبب اننا ما نبغاه يطبع الاصفار فاللي راح يسير راح يطبع الاري من الاندكس 0 الى 6 لانه عدد الاصفار عندنا 3
|