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

المصفوفات متعددة الأبعاد

جزء من قسم Fundamentals في رحلة C على Coddy — الدرس 56 من 63.

المصفوفة متعددة الأبعاد هي مصفوفة من المصفوفات. في لغة C، يمكنك إنشاء مصفوفة ثنائية الأبعاد 2D (وهي المصفوفة متعددة الأبعاد الأكثر شيوعاً)، وهي في الأساس جدول يحتوي على صفوف وأعمدة.

تصريح عن مصفوفة ثنائية الأبعاد:

int matrix[3][4];

يقوم هذا بإنشاء مصفوفة ثنائية الأبعاد بـ 3 صفوف و 4 أعمدة.

يمكنك تهيئة مصفوفة ثنائية الأبعاد عند التصريح عنها:

int matrix[3][4] = {
    {1, 2, 3, 4},    // الصف الأول
    {5, 6, 7, 8},    // الصف الثاني
    {9, 10, 11, 12}  // الصف الثالث
};

للوصول إلى العناصر في مصفوفة ثنائية الأبعاد، استخدم فهرسين:

int value = matrix[1][2];  // الوصول إلى الصف 1، العمود 2 (ستكون القيمة 7)

لتعديل عنصر في مصفوفة ثنائية الأبعاد:

matrix[0][3] = 100;  // يغير العنصر في الصف 0، العمود 3 إلى 100

يمكنك أيضاً استخدام الحلقات المتداخلة للوصول إلى جميع العناصر في مصفوفة ثنائية الأبعاد:

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 4; j++) {
        printf("%d ", matrix[i][j]);
    }
    printf("\n");  // سطر جديد بعد كل صف
}
challenge icon

التحدي

سهل

أنشئ دالة تسمى printDiagonal تأخذ مصفوفة مربعة ثنائية الأبعاد (حيث يتساوى عدد الصفوف مع عدد الأعمدة) وتطبع العناصر الموجودة على القطر الرئيسي (من أعلى اليسار إلى أسفل اليمين).

يجب أن تقوم الدالة بما يلي:

  1. تأخذ مصفوفة أعداد صحيحة وحجمها كمعاملات.
  2. تطبع كل عنصر في القطر الرئيسي (حيث يتساوى فهرس الصف مع فهرس العمود).
  3. تفصل بين كل عنصر والآخر بمسافة.

على سبيل المثال، إذا كانت المصفوفة:

1 2 3 4 5 6 7 8 9

يجب أن تطبع الدالة: 1 5 9

ورقة مرجعية

المصفوفة متعددة الأبعاد هي مصفوفة من المصفوفات. في لغة C، يمكنك إنشاء مصفوفة ثنائية الأبعاد تتكون من صفوف وأعمدة.

الإعلان عن مصفوفة ثنائية الأبعاد:

int matrix[3][4];

تهيئة مصفوفة ثنائية الأبعاد عند الإعلان عنها:

int matrix[3][4] = {
    {1, 2, 3, 4},    // الصف الأول
    {5, 6, 7, 8},    // الصف الثاني
    {9, 10, 11, 12}  // الصف الثالث
};

الوصول إلى العناصر باستخدام فهرسين:

int value = matrix[1][2];  // الوصول إلى الصف 1، العمود 2 (ستكون القيمة 7)

تعديل عنصر:

matrix[0][3] = 100;  // تغيير العنصر في الصف 0، العمود 3 إلى 100

استخدام الحلقات المتداخلة للوصول إلى جميع العناصر:

for (int i = 0; i < 3; i++) {
    for (int j = 0; j < 4; j++) {
        printf("%d ", matrix[i][j]);
    }
    printf("\n");  // سطر جديد بعد كل صف
}

جرّب بنفسك

#include <stdio.h>

// دالة لطباعة عناصر القطر لمصفوفة مربعة
void printDiagonal(int matrix[][100], int size) {
    // اكتب الكود الخاص بك هنا
    
}

int main() {
    int size;
    scanf("%d", &size);
    
    int matrix[100][100];
    for (int i = 0; i < size; i++) {
        for (int j = 0; j < size; j++) {
            scanf("%d", &matrix[i][j]);
        }
    }
    
    printDiagonal(matrix, size);
    
    return 0;
}
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس Fundamentals