English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدليل، ستتعلم باستخدام أمثلة كيفية استخدام مصفوفات متعددة الأبعاد (ثنائية الأبعاد وثلاثية الأبعاد).
في برمجة C، يمكنك إنشاء مصفوفة من مصفوفات. هذه المصفوفات تُسمى مصفوفات متعددة الأبعاد. على سبيل المثال،
float x[3][4];
هذا x هو مصفوفة ثنائية الأبعاد (2d). يمكن للجهاز استيعاب 12 عنصرًا. يمكنك اعتبار المصفوفة كجدول يحتوي على 3 صفوف، وكل صف يحتوي على 4 أعمدة.
بالمثل، يمكنك إعلان مصفوفة ثلاثية الأبعاد (3d). على سبيل المثال،
float y[2][4][3];
في هذا السياق، يمكن لمصفوفة y استيعاب 24 عنصرًا.
إليك طرق إعداد مصفوفة ثنائية الأبعاد ومصفوفة ثلاثية الأبعاد:
//طرق مختلفة لإعداد مصفوفة ثنائية الأبعاد int c[2][3] = {{1, 3, 0}, {-1, 5, 9}}; int c[][3] = {{1, 3, 0}, {-1, 5, 9}}; int c[2][3] = {1, 3, 0, -1, 5, 9};
يمكنك إعداد مصفوفة ثلاثية الأبعاد بنفس الطريقة التي تستخدمها مع مصفوفة ثنائية الأبعاد. هذا مثال
int test[2][3][4] = { {{3, 4, 2, 3}, {0, -3, 9, 11}, {23, 12, 23, 2}}, {{13, 4, 56, 3}, {5, 9, 3, 5}, {3, 1, 4, 9}}};
//C程序存储一周内两个城市的温度并显示。 #include <stdio.h> const int CITY = 2; const int WEEK = 7; int main() { int temperature[CITY][WEEK]; //استخدام دوائر الفور لتحديد القيم في مصفوفة ثنائية الأبعاد for (int i = 0; i < CITY; ++i) { for (int j = 0; j < WEEK; ++j) { printf("المدينة %d, اليوم %d: ", i + 1, j + 1); scanf("%d", &temperature[i][j]); } } printf("\nعرض القيم: \n\n"); //استخدام دوائر الفور لعرض قيم مصفوفة ثنائية الأبعاد for (int i = 0; i < CITY; ++i) { for (int j = 0; j < WEEK; ++j) { printf("المدينة %d, اليوم %d = %d\n", i + 1, j + 1, temperature[i][j]); } } return 0; }
输出结果
المدينة 1, اليوم 1: 33 المدينة 1, اليوم 2: 34 المدينة 1, اليوم 3: 35 المدينة 1, اليوم 4: 33 المدينة 1, اليوم 5: 32 المدينة 1, اليوم 6: 31 المدينة 1, اليوم 7: 30 المدينة 2, اليوم 1: 23 المدينة 2, اليوم 2: 22 المدينة 2, اليوم 3: 21 المدينة 2, اليوم 4: 24 المدينة 2, اليوم 5: 22 المدينة 2, اليوم 6: 25 المدينة 2, اليوم 7: 26 显示数值: المدينة 1, اليوم 1 = 33 المدينة 1, اليوم 2 = 34 المدينة 1, اليوم 3 = 35 المدينة 1, اليوم 4 = 33 المدينة 1, اليوم 5 = 32 المدينة 1, اليوم 6 = 31 المدينة 1, اليوم 7 = 30 المدينة 2, اليوم 1 = 23 المدينة 2, اليوم 2 = 22 المدينة 2, اليوم 3 = 21 المدينة 2, اليوم 4 = 24 المدينة 2, اليوم 5 = 22 المدينة 2, اليوم 6 = 25 المدينة 2, اليوم 7 = 26
//حساب مجموع مصفوفة 2*2 في برنامج C #include <stdio.h> int main() { float a[2][2], b[2][2], result[2][2]; //استخدام دوائر الفور لجلب الدخول printf("ادخل عناصر المatrice الاولى\n"); for (int i = 0; i < 2; ++i) for (int j = 0; j < 2; ++j) { printf("输入 a%d%d: ", i + 1, j + 1) scanf("%f", &a[i][j]); } // 使用嵌套的for循环获取输入 printf("输入第二矩阵的元素\n"); for (int i = 0; i < 2; ++i) for (int j = 0; j < 2; ++j) { printf("输入 b%d%d: ", i + 1, j + 1); scanf("%f", &b[i][j]); } // 添加两个数组的对应元素 for (int i = 0; i < 2; ++i) for (int j = 0; j < 2; ++j) { result[i][j] = a[i][j] + b[i][j]; } //显示总和 printf("\n矩阵的总和:\"); for (int i = 0; i < 2; ++i) for (int j = 0; j < 2; ++j) { printf("%.1f\t", result[i][j]); if (j == 1) printf("\n"); } return 0; }
输出结果
输入第一矩阵的元素 输入 a11: 2; 输入 a12: 0.5; 输入 a21: -1.1; 输入 a22: 2; 输入第二矩阵的元素 输入 b11: 0.2; 输入 b12: 0; 输入 b21: 0.23; 输入 b22: 23; 矩阵的总和: 2.2 0.5 -0.9 25.0
//C程序,用于存储和打印用户输入的12个值 #include <stdio.h> int main() { int test[2][3][2]; printf("输入12个值:\n"); for (int i = 0; i < 2; ++i) { for (int j = 0; j < 3; ++j) { for (int k = 0; k < 2; ++k) { scanf("%d", &test[i][j][k]); } } } //使用适当的索引打印值。 printf("\n显示数值:\n"); for (int i = 0; i < 2; ++i) { for (int j = 0; j < 3; ++j) { for (int k = 0; k < 2; ++k) { printf("test[%d][%d][%d] = %d\n", i, j, k, test[i][j][k]); } } } return 0; }
输出结果
输入12个值: 1 2 3 4 5 6 7 8 9 10 11 12 显示数值: test[0][0][0] = 1 test[0][0][1] = 2 test[0][1][0] = 3 test[0][1][1] = 4 test[0][2][0] = 5 test[0][2][1] = 6 test[1][0][0] = 7 test[1][0][1] = 8 test[1][1][0] = 9 test[1][1][1] = 10 test[1][2][0] = 11 test[1][2][1] = 12