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

المطلوب

قم بتعريف دالة إسمها 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
		

الدورات

أدوات مساعدة

أقسام الموقع

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