المصفوفات متعددة الأبعاد
جزء من قسم 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"); // سطر جديد بعد كل صف
}التحدي
سهلأنشئ دالة تسمى printDiagonal تأخذ مصفوفة مربعة ثنائية الأبعاد (حيث يتساوى عدد الصفوف مع عدد الأعمدة) وتطبع العناصر الموجودة على القطر الرئيسي (من أعلى اليسار إلى أسفل اليمين).
يجب أن تقوم الدالة بما يلي:
- تأخذ مصفوفة أعداد صحيحة وحجمها كمعاملات.
- تطبع كل عنصر في القطر الرئيسي (حيث يتساوى فهرس الصف مع فهرس العمود).
- تفصل بين كل عنصر والآخر بمسافة.
على سبيل المثال، إذا كانت المصفوفة:
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;
}يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.
جميع دروس Fundamentals
2المتغيرات
أنواع البياناتالأعداد الصحيحة (Integer)الأعداد العشرية (Float - Double)المحارف (Characters)القيم المنطقية (Booleans)الثوابتأساسيات printfقواعد تسمية المتغيراتتحويل الأنواع (Type Casting) - الجزء 1تحويل الأنواع (Type Casting) - الجزء 2تحدي المراجعة5الإدخال والإخراج
محددات التنسيقأساسيات scanfتحدي المراجعة رقم 1التحقق من صحة الإدخالتحدي المراجعة رقم 28المصفوفات
تعريف المصفوفاتالوصول إلى العناصرتعديل العناصرالمصفوفات متعددة الأبعادتحدي المراجعة رقم 1المصفوفات كمعاملات للدوالخوارزميات المصفوفاتتحدي المراجعة رقم 23المعاملات
المعاملات الحسابيةمعامل باقي القسمةالزيادة والنقصانمعاملات الإسنادالمعاملات العلائقيةالمعاملات المنطقية - الجزء الأولالمعاملات المنطقية - الجزء الثانيالمعاملات المنطقية - الجزء الثالثتحدي المراجعة