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