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