المطلوب
قم بتعريف دالة إسمها PrintSecondBiggest, عند استدعاءها نمرر لها مصفوفة أحادية (ذات بعد واحد) فتقوم بطباعة ثاني أكبر عدد موجود فيها.
بعدها قم بإنشاء مصفوفة في البرنامج و تجربة استدعاء الدالة لمعرفة ثاني أكبر عدد موجود في المصفوفة.
الحل بلغة C++
#include <iostream>
// printSecondBiggest() هنا قمنا بتعريف الدالة
void printSecondBiggest(int *arr, int arrLength) {
if (arrLength == 0)
{
std::cout << "Invalid params";
return;
}
int secondBiggest = 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 = arrLength - 1; i >= 0; i--)
{
if (arr[i] != arr[arrLength - 1])
{
secondBiggest = arr[i];
break;
}
}
if (secondBiggest == arr[0])
{
std::cout << "There isn't a second biggest number";
return;
}
std::cout << "Second biggest number is: " << secondBiggest;
}
// printSecondBiggest() هنا قمنا بإنشاء مصفوفة أرقام أحادية و تجربة الدالة
int main() {
int arr[] = { 5, 9, 3, 6, 4, 2, 7, 1, 8 };
int arrLength = sizeof(arr) / sizeof(arr[0]);
printSecondBiggest(arr, arrLength);
char end; std::cin >> end;
return 0;
}
سنحصل على النتيجة التالية عند التشغيل في حال كانت المصفوفة تحتوي على نفس القيم المجهزة فيها.
Second biggest number is: 8


محرر الويب
نظام الألوان
محول الوحدات
محلل عناوين الشبكات