كيفية إيجاد ثاني أكبر عنصر في مصفوفة باستخدام لغة C: أمثلة عملية

Amine
23/10/2024

برنامج لإيجاد ثاني أكبر عنصر في المصفوفة باستخدام 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. هذه الطريقة يمكن تطبيقها على مصفوفات بأي حجم. البحث عن ثاني أكبر عنصر يعد من المهام الأساسية التي تُستخدم في مجموعة متنوعة من التطبيقات.

التعليقات

اترك تعليقاً