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

تحديات برمجيةالتحدي الثالث - حل التمرين الثاني بلغة 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)