Menu
CoddyTech

ملخص: المصفوفة الديناميكية

جزء من قسم المنطق وتدفق التنفيذ في رحلة C على Coddy. الدرس 37 من 63.

challenge icon

التحدي

سهل

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

  1. قراءة عدد صحيح n من المستخدم يمثّل عدد العناصر المراد تخزينها
  2. استخدام malloc() مع sizeof() لتخصيص ذاكرة ديناميكيًا لمصفوفة تحتوي على n من الأعداد الصحيحة
  3. التحقق مما إذا كان تخصيص الذاكرة قد نجح - وإذا فشل، اطبع Memory allocation failed! وأنهِ البرنامج
  4. إذا نجح التخصيص، اطبع Array of size [n] created successfully!
  5. قراءة n قيمة صحيحة من المستخدم وتخزينها في المصفوفة المخصصة
  6. حساب مجموع جميع العناصر وطباعته بالتنسيق: Sum: [value]
  7. إيجاد القيمة الصغرى وطباعتها بالتنسيق: Minimum: [value]
  8. حساب عدد العناصر الأكبر من المتوسط وطباعته بالتنسيق: Elements above average: [count]
  9. طباعة إجمالي الذاكرة المستخدمة بالبايت بالتنسيق: Memory used: [bytes] bytes
  10. استخدام free() لتحرير الذاكرة
  11. طباعة Memory successfully freed! للتأكد من إتمام التنظيف على نحو سليم

تذكّر تضمين الترويسة <stdlib.h> لاستخدام malloc() وfree(). يختبر هذا التحدي فهمك الكامل لإدارة الذاكرة الديناميكية، بدءًا من التخصيص مرورًا بالاستخدام ووصولًا إلى التحرير السليم.

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

5
12 8 15 3 20

فيجب أن يكون الناتج:

Array of size 5 created successfully!
Sum: 58
Minimum: 3
Elements above average: 3
Memory used: 20 bytes
Memory successfully freed!

يوضح هذا التحدي الشامل دورة حياة إدارة الذاكرة الديناميكية بأكملها، مع تنفيذ عمليات مفيدة لمعالجة البيانات على المصفوفة المخصصة.

جرّب بنفسك

#include <stdio.h>
#include <stdlib.h>

int main() {
    // اقرأ عدد العناصر
    int n;
    scanf("%d", &n);
    
    // TODO: اكتب شيفرتك أدناه
    // 1. خصّص ذاكرة لـ n من الأعداد الصحيحة باستخدام malloc()
    // 2. تحقّق من نجاح تخصيص الذاكرة
    // 3. اقرأ n من الأعداد الصحيحة إلى المصفوفة
    // 4. احسب المجموع، وأوجد القيمة الصغرى، وعدّ العناصر التي تتجاوز المتوسط
    // 5. اطبع النتائج وحرّر الذاكرة
    
    return 0;
}

جميع دروس المنطق وتدفق التنفيذ

تدرّب بنفسك: مترجم C عبر الإنترنت