Abdelrehman Elsied نشر 4 أغسطس أرسل تقرير نشر 4 أغسطس هل يمكنني سؤال أسئله في الData Structure في لغه السي. 1 اقتباس
0 Mustafa Suleiman نشر 4 أغسطس أرسل تقرير نشر 4 أغسطس بالطبع تستطيع ذلك، يمكنك طرح أي أسئلة متعلقة بأقسام الأسئلة المتاحة بالأكاديمية، ومنها قسم البرمجة والخاص بجميع أسئلة البرمجة. اقتباس
0 Abdelrehman Elsied نشر 4 أغسطس الكاتب أرسل تقرير نشر 4 أغسطس اسف السؤال يتعلق بالخوارزميات و ليس الdata structure. أعذرني من فضلك. السؤال عن خوارزميه الselection sort. في هذا الكود, لماذا لا يظهر الرقم 7: #include <cs50.h> #include <stdio.h> int main(void) { int numbers[] = {4, 7, 2, 6, 3, 1, 2}; int max, LEN = 7, tmp; for (int i = LEN - 1; i >= 0; i--) { max = 0; for (int j = 0; j <= i; j++) { if (numbers[max] < numbers[j]) max = j; } // now I have the max index. swap it now. // swap between numbers[max] & numbers[LEN - 1] tmp = numbers[max]; // tmp 6 numbers[max] = numbers[LEN - 1]; // 2 numbers[LEN - 1] = tmp; LEN --; } for (int i = 0; i < 6; i++) { printf("%d ", numbers[i]); } printf("\n"); } و سؤال اخر, من فضلك. ما الوقت الذي يستغرقه دراسه خوارزميه مثل selection sort. لأنني أشعر انني اخذ وقتا اكثر من اللازم في فهم و تطبيق تلك الخوارزميات. و شكرا علي مجهودكم الطيب. اقتباس
0 Mustafa Suleiman نشر 5 أغسطس أرسل تقرير نشر 5 أغسطس هنا: for (int i = 0; i < 6; i++) { printf("%d ", numbers[i]); } الحلقة تبدأ من i = 0 والشرط هو i < 6، بالتالي ستستمر طالما أن i تساوي 0, 1, 2, 3, 4, 5 وعندما تصل قيمة i إلى 6، يصبح الشرط 6 < 6 غير صحيح false، فتتوقف الحلقة. لذا الكود يطبع فقط العناصر من numbers[0] إلى numbers[5]، ويتجاهل تماماً العنصر الأخير numbers[6] الذي يحتوي على الرقم 7. الصحيح هو: for (int i = 0; i < 7; i++) { printf("%d ", numbers[i]); } اقتباس
السؤال
Abdelrehman Elsied
هل يمكنني سؤال أسئله في الData Structure في لغه السي.
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.