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

المطلوب

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

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


الحل بلغة C

#include <stdio.h>
#include <stdlib.h>

// هنا قمنا بتعريف الدالة
void countOccurrence(int arr[], int arrLength) {
    
	int counter = 0;
	
	for (int i = 0; i < arrLength; i++)
	{
		if (arr[i] == 0)
		{
			counter++;
		}
	}
	
	if (counter > 0)
	{
		printf("[0] is repeated %d time(s)\n", counter);
	}
	
	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;
				}
			}
			printf("[%d] is repeated %d time(s)\n", arr[i], counter);
		}
	}
    
}


void 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);
    
}
		

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

[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)
		

الدورات

أدوات مساعدة

أقسام الموقع

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