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

المطلوب

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

مساعدة: يجب تمرير حجم المصفوفة أيضاً للدالة لأنه لا يمكن معرفته بالطرق العادية من داخل الدالة.


الحل بلغة C++

#include <iostream>

// هنا قمنا بتعريف الدالة
void countOccurrence(int arr[], int arrLength)
{
	int counter = 0;

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

	if (counter > 0)
	{
		std::cout << "[0] is repeated " << counter << " time(s)\n";
	}

	for (int i = 0; i < arrLength; i++)
	{
		counter = 1;
		if (arr[i] != 0)
		{
			for (int j = i + 1; j < arrLength; j++)
			{
				if (arr[i] == arr[j])
				{
					counter++;
					arr[j] = 0;
				}
			}
			std::cout << "[" << arr[i] << "] is repeated " << counter << " time(s)\n";
		}
	}
}

int main() {
	
	// هنا قمنا بتجهيز القيم التي سنمررها للدالة
	int array[] = { 0, 4, 2, 3, 2, 4, 3, 5, 2, 0, 1, 4, 2 };
	int arrayLength = sizeof(array) / sizeof(array[0]);

	// هنا قمنا بتجربة الدالة
	countOccurrence(array, arrayLength);

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

}
		

سنحصل على النتيجة التالية عند التشغيل.

[0] is repeated 2 time(s)
[4] is repeated 3 time(s)
[2] is repeated 4 time(s)
[3] is repeated 2 time(s)
[5] is repeated 1 time(s)
[1] is repeated 1 time(s)
		

الدورات

أدوات مساعدة

أقسام الموقع

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