الخوارزميات و هياكل البيانات التحدي السادس - حل التمرين الأول بلغة C#

المطلوب

قم بتعريف دالة إسمها PrintSecondBiggest, عند استدعاءها نمرر لها مصفوفة أحادية (ذات بعد واحد) فتقوم بطباعة ثاني أكبر عدد موجود فيها.
بعدها قم بإنشاء مصفوفة في البرنامج و تجربة استدعاء الدالة لمعرفة ثاني أكبر عدد موجود في المصفوفة.


الحل بلغة C#

using System;

class Program
{
    // PrintSecondBiggest() هنا قمنا بتعريف الدالة
    static void PrintSecondBiggest(int[] arr)
    {
        if (arr.Length == 0)
        {
            Console.WriteLine("Invalid params");
            return;
        }

        int secondBiggest = arr[0];
        int temp;

        for (int i = 0; i < arr.Length - 1; i++)
        {
            for (int j = i + 1; j < arr.Length; j++)
            {
                if (arr[i] > arr[j])
                {
                    temp = arr[j];
                    arr[j] = arr[i];
                    arr[i] = temp;
                }
            }
        }

        for (int i = arr.Length - 1; i >= 0; i--)
        {
            if (arr[i] != arr[arr.Length - 1])
            {
                secondBiggest = arr[i];
                break;
            }
        }

		if (secondBiggest == arr[0])
		{
			Console.WriteLine("There isn't a second biggest number");
			return;
		}

        Console.WriteLine("Second biggest number is: " + secondBiggest);
    }

    // PrintSecondBiggest() هنا قمنا بإنشاء مصفوفة أرقام أحادية و تجربة الدالة
    static void Main(string[] args)
    {
        int[] arr = { 5, 9, 3, 6, 4, 2, 7, 1, 8 };
		PrintSecondBiggest(arr);

        Console.ReadKey();
    }
}
		

سنحصل على النتيجة التالية عند التشغيل في حال كانت المصفوفة تحتوي على نفس القيم المجهزة فيها.

Second biggest number is: 8
		

الدورات

أدوات مساعدة

أقسام الموقع

دورات
مقالات كتب مشاريع أسئلة