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

تحديات برمجيةالتحدي السادس - حل التمرين الثاني بلغة C++

المطلوب

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


الحل بلغة C++

#include <iostream>

// printSecondLowest() هنا قمنا بتعريف الدالة
void printSecondLowest(int *arr, int arrLength) {

    if (arrLength == 0)
    {
        std::cout << "Invalid params";
        return;
    }

    int secondLowest = arr[0];
    int temp;

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

    for (int i = 0; i < arrLength; i++)
    {
        if (arr[i] != arr[0])
        {
            secondLowest = arr[i];
            break;
        }
    }

    if (secondLowest == arr[0])
    {
        std::cout << "There isn't a second lowest number";
        return;
    }

    std::cout << "Second lowest number is: " << secondLowest;

}


// printSecondLowest() هنا قمنا بإنشاء مصفوفة أرقام أحادية و تجربة الدالة
int main() {

    int arr[] = { 5, 9, 3, 6, 4, 2, 7, 1, 8 };
    int arrLength = sizeof(arr) / sizeof(arr[0]);

    printSecondLowest(arr, arrLength);

    char end; std::cin >> end;
    return 0;

}

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

Second lowest number is: 2