كيفية إيجاد ثاني أكبر عنصر في مصفوفة باستخدام لغة C: أمثلة عملية
برنامج لإيجاد ثاني أكبر عنصر في المصفوفة باستخدام C
في هذا الدرس، سنتعلم كيفية العثور على ثاني أكبر عنصر في مصفوفة باستخدام حلقة for
في لغة C. يتم ذلك عبر المرور على جميع عناصر المصفوفة، مع الاحتفاظ بأكبر وثاني أكبر عنصر.
مفهوم إيجاد ثاني أكبر عنصر في المصفوفة
لإيجاد ثاني أكبر عنصر في المصفوفة، نحتاج إلى متغيرين، أحدهما لحفظ أكبر عنصر والآخر لحفظ ثاني أكبر عنصر. نبدأ بتهيئة هذين المتغيرين بقيم صغيرة جدًا (مثل INT_MIN
) ثم نمر على جميع عناصر المصفوفة لمقارنتها وتحديث هذين المتغيرين عند الضرورة.
برنامج لإيجاد ثاني أكبر عنصر في المصفوفة
في البرنامج التالي، سنقوم بإيجاد ثاني أكبر عنصر في مصفوفة مكونة من 5 أرقام:
#include <stdio.h>
#include <limits.h> // لاستخدام INT_MIN
int main() {
// تعريف مصفوفة مكونة من 5 عناصر
int arr[5] = {10, 50, 30, 20, 40};
int i, largest, second_largest;
// تهيئة المتغيرات
largest = second_largest = INT_MIN;
// البحث عن أكبر وثاني أكبر عنصر في المصفوفة
for(i = 0; i < 5; i++) {
if(arr[i] > largest) {
second_largest = largest;
largest = arr[i];
} else if(arr[i] > second_largest && arr[i] != largest) {
second_largest = arr[i];
}
}
// طباعة النتيجة النهائية
printf("أكبر عنصر في المصفوفة هو: %d\n", largest);
printf("ثاني أكبر عنصر في المصفوفة هو: %d\n", second_largest);
return 0;
}
الإخراج
أكبر عنصر في المصفوفة هو: 50
ثاني أكبر عنصر في المصفوفة هو: 40
شرح البرنامج
في البرنامج أعلاه:
- قمنا بتعريف مصفوفة
arr
تحتوي على 5 عناصر. - قمنا بتعريف متغيرين
largest
وsecond_largest
وتهيئتهما بقيمةINT_MIN
، وهي أقل قيمة ممكنة لعدد صحيح. - استخدمنا حلقة
for
للمرور عبر جميع عناصر المصفوفة. في كل تكرار، نتحقق إذا كان العنصر الحالي أكبر منlargest
، وإذا كان كذلك، نحدث كل منlargest
وsecond_largest
. - إذا لم يكن العنصر الحالي أكبر من
largest
ولكنه أكبر منsecond_largest
ولم يكن مساويًا لـlargest
، يتم تحديثsecond_largest
. - بعد انتهاء الحلقة، يتم طباعة أكبر عنصر وثاني أكبر عنصر باستخدام
printf
.
برنامج لإيجاد ثاني أكبر عنصر في مصفوفة مدخلة من المستخدم
في البرنامج التالي، سنطلب من المستخدم إدخال القيم لعناصر المصفوفة، ثم نبحث عن أكبر وثاني أكبر عنصر فيها:
#include <stdio.h>
#include <limits.h> // لاستخدام INT_MIN
int main() {
int arr[5], i, largest, second_largest;
// طلب إدخال القيم من المستخدم
printf("أدخل 5 أرقام:\n");
for(i = 0; i < 5; i++) {
scanf("%d", &arr[i]);
}
// تهيئة المتغيرات
largest = second_largest = INT_MIN;
// البحث عن أكبر وثاني أكبر عنصر في المصفوفة
for(i = 0; i < 5; i++) {
if(arr[i] > largest) {
second_largest = largest;
largest = arr[i];
} else if(arr[i] > second_largest && arr[i] != largest) {
second_largest = arr[i];
}
}
// طباعة النتيجة
printf("أكبر عنصر في المصفوفة هو: %d\n", largest);
printf("ثاني أكبر عنصر في المصفوفة هو: %d\n", second_largest);
return 0;
}
الإخراج
أدخل 5 أرقام:
10
20
30
40
50
أكبر عنصر في المصفوفة هو: 50
ثاني أكبر عنصر في المصفوفة هو: 40
الخاتمة
في هذا الدرس، تعلمنا كيفية العثور على ثاني أكبر عنصر في مصفوفة باستخدام حلقة for
في لغة C. هذه الطريقة يمكن تطبيقها على مصفوفات بأي حجم. البحث عن ثاني أكبر عنصر يعد من المهام الأساسية التي تُستخدم في مجموعة متنوعة من التطبيقات.
اترك تعليقاً