Menu
Coddy logo textTech
flag Ar iconالعربيةdown icon

مراجعة: التنقل في المصفوفة باستخدام المؤشرات

جزء من قسم Logic & Flow في رحلة C على Coddy — الدرس 11 من 63.

challenge icon

التحدي

سهل

اكتب برنامجاً بلغة C ينفذ دالة لحساب مجموع كل العناصر في مصفوفة صحيحة (integer array) باستخدام حسابيات المؤشرات (pointer arithmetic) وتكافؤ المصفوفة والمؤشر. يجب أن يقوم برنامجك بما يلي:

  1. إنشاء دالة باسم calculateSum تأخذ معاملين:
    • مؤشر إلى عدد صحيح (int *arr) يمثل المصفوفة
    • عدد صحيح (size) يمثل عدد العناصر في المصفوفة
  2. داخل دالة calculateSum:
    • تهيئة متغير sum بالقيمة 0
    • إنشاء متغير مؤشر ptr وضبطه ليشير إلى بداية المصفوفة
    • استخدام حلقة (loop) للمرور عبر المصفوفة باستخدام حسابيات المؤشرات
    • في كل تكرار، أضف القيمة التي يشير إليها ptr إلى sum
    • زيادة المؤشر للانتقال إلى العنصر التالي
    • إرجاع المجموع المحسوب
  3. في دالة main:
    • قراءة عدد صحيح n يمثل حجم المصفوفة
    • الإعلان عن مصفوفة صحيحة بحجم n
    • قراءة n من الأعداد الصحيحة من المدخلات لملء المصفوفة
    • استدعاء دالة calculateSum مع المصفوفة وحجمها
    • طباعة النتيجة بالتنسيق التالي: "Sum: [value]"

يجب أن تستخدم الدالة حسابيات المؤشرات للتنقل عبر المصفوفة - لا تستخدم تدوين فهرسة المصفوفة مثل arr[i]. بدلاً من ذلك، استخدم عمليات إلغاء المرجعية (dereferencing) والزيادة (increment) للوصول إلى عناصر المصفوفة.

على سبيل المثال، إذا كانت المدخلات هي:

5
10 20 30 40 50

يجب أن تكون مخرجاتك:

Sum: 150

يختبر هذا التحدي فهمك لكيفية قبول الدوال للمصفوفات كمعاملات مؤشر، وكيفية استخدام حسابيات المؤشرات للتنقل عبر المصفوفات بكفاءة، وكيف يتم تحويل أسماء المصفوفات تلقائياً إلى مؤشرات عند تمريرها إلى الدوال.

جرّب بنفسك

#include <stdio.h>

// TODO: اكتب دالة calculateSum الخاصة بك هنا

int main() {
    int n;
    scanf("%d", &n);
    
    int arr[n];
    
    // قراءة عناصر المصفوفة
    for(int i = 0; i < n; i++) {
        scanf("%d", &arr[i]);
    }
    
    // TODO: استدعِ دالة calculateSum وقم بتخزين النتيجة
    
    // TODO: اطبع النتيجة بالتنسيق "Sum: [value]"
    
    return 0;
}

جميع دروس Logic & Flow