Programming Basics SQL HTML CSS JavaScript React Python C++ Java JavaFX Swing Problem Solving English English Conversations Computer Fundamentals Linux Learn Typing

تحديات برمجيةالتحدي السادس - حل التمرين الأول بلغة جافا

المطلوب

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


الحل بلغة جافا

public class Main {
    
    // printSecondBiggest() هنا قمنا بتعريف الدالة
    public static void printSecondBiggest(int[] arr) {
        
        if (arr.length == 0)
        {
            System.out.println("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])
        {
            System.out.println("There isn't a second biggest number");
            return;
        }
        
        System.out.println("Second biggest number is: " + secondBiggest);

    }


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

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

Second biggest number is: 8