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

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

جزء من قسم Logic & Flow في رحلة 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: 2
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;
}

جميع دروس Logic & Flow