تحديات برمجيةالتحدي الثالث - حل التمرين الثاني بلغة C++
المطلوب
قم بتعريف دالة إسمها CountOccurrence
, مهمتها البحث في مصفوفة أحادية ( تتألف من أعداد صحيحة ) و طباعة كم مرة تكررت كل قيمة موجودة فيها.
بعدها قم بتجربة هذه الدالة في البرنامج.
مساعدة: يجب تمرير حجم المصفوفة أيضاً للدالة لأنه لا يمكن معرفته بالطرق العادية من داخل الدالة.
الحل بلغة C++
// هنا قمنا بتعريف الدالة 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)