در این آموزش کار با آرایه های چند بعدی (آرایه های دو بعدی و سه بعدی) را به کمک مثال یاد خواهید گرفت.
در برنامه نویسی C می توانید آرایه ای از آرایه ها ایجاد کنید. به این نوع آرایه ها، آرایه های چند بعدی گفته می شود. مثال،
توی این پک فوق العاده، صفرتاصد مبانی برنامه نویسی رو جوری یاد میگیری که تو هیچ کلاس آموزشی یا پک دیگه ای نه دیدی نه شنیدی! بدون هیچ کلاسی، با صفرتاصد مبانی برنامه نویسی اپلیکیشن بزن، پروژه محور یاد بگیر و حسابی پول در بیار!
float x[3][4];
در اینجا، x یک آرایه دو بعدی (۲d) است. این آرایه می تواند ۱۲ عنصر را در خود جای دهد. می توانید این آرایه را به عنوان یک جدول با ۳ سطر و ۴ ستون در نظر بگیرید.
به همین ترتیب می توانید یک آرایه سه بعدی(۳d) تعریف کنید. مثال،
float y[2][4][3];
در اینجا، آرایه y می تواند ۲۴ عنصر را در خود جای دهد.
مقداردهی اولیه آرایه چند بعدی
در ادامه مقداردهی اولیه آرایه های دو بعدی و سه بعدی را توضیح می دهیم:
مقداردهی اولیه آرایه دو بعدی
روش های مختلف مقداردهی اولیه آرایه دو بعدی:
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] = {
{{۳, ۴, ۲, ۳}, {۰, -۳, ۹, ۱۱}, {۲۳, ۱۲, ۲۳, ۲}},
{{۱۳, ۴, ۵۶, ۳}, {۵, ۹, ۳, ۵}, {۳, ۱, ۴, ۹}}};
مثال ۱: آرایه دو بعدی برای ذخیره و چاپ مقادیر
// برنامه ذخیره دمای دو شهر در یک هفته و نمایش آنها
#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(“City %d, Day %d: “, i + 1, j + 1);
scanf(“%d”, &temperature[i][j]);
}
}
printf(“\nDisplaying values: \n\n”);
// استفاده از حلقه های تودرتو برای نمایش مقادیر آرایه دو بعدی
for (int i = 0; i < CITY; ++i)
{
for (int j = 0; j < WEEK; ++j)
{
printf(“City %d, Day %d = %d\n”, i + 1, j + 1, temperature[i][j]);
}
}
return 0;
}
خروجی
City 1, Day 1: 33
City 1, Day 2: 34
City 1, Day 3: 35
City 1, Day 4: 33
City 1, Day 5: 32
City 1, Day 6: 31
City 1, Day 7: 30
City 2, Day 1: 23
City 2, Day 2: 22
City 2, Day 3: 21
City 2, Day 4: 24
City 2, Day 5: 22
City 2, Day 6: 25
City 2, Day 7: 26
Displaying values:
City 1, Day 1 = 33
City 1, Day 2 = 34
City 1, Day 3 = 35
City 1, Day 4 = 33
City 1, Day 5 = 32
City 1, Day 6 = 31
City 1, Day 7 = 30
City 2, Day 1 = 23
City 2, Day 2 = 22
City 2, Day 3 = 21
City 2, Day 4 = 24
City 2, Day 5 = 22
City 2, Day 6 = 25
City 2, Day 7 = 26
مثال ۲: محاسبه مجموع دو ماتریس
// برنامه محاسبه مجموع دو ماتریس ۲ * ۲
#include <stdio.h>
int main()
{
float a[2][2], b[2][2], result[2][2];
// گرفتن ورودی با استفاده از حلقه های تودرتو
printf(“Enter elements of 1st matrix\n”);
for (int i = 0; i < 2; ++i)
for (int j = 0; j < 2; ++j)
{
printf(“Enter a%d%d: “, i + 1, j + 1);
scanf(“%f”, &a[i][j]);
}
// گرفتن ورودی با استفاده از حلقه های تودرتو
printf(“Enter elements of 2nd matrix\n”);
for (int i = 0; i < 2; ++i)
for (int j = 0; j < 2; ++j)
{
printf(“Enter 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(“\nSum Of Matrix:”);
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;
}
خروجی
Enter elements of 1st matrix
Enter a11: 2;
Enter a12: 0.5;
Enter a21: -1.1;
Enter a22: 2;
Enter elements of 2nd matrix
Enter b11: 0.2;
Enter b12: 0;
Enter b21: 0.23;
Enter b22: 23;
Sum Of Matrix:
۲٫۲ ۰٫۵
-۰٫۹ ۲۵٫۰
مثال ۳: آرایه سه بعدی
ذخیره و چاپ ۱۲ مقدار ورودی توسط کاربر
// ذخیره و چاپ ۱۲ مقدار ورودی توسط کاربر
#include <stdio.h>
int main()
{
int test[2][3][2];
printf(“Enter 12 values: \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(“\nDisplaying values:\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;
}
خروجی
Enter 12 values:
۱
۲
۳
۴
۵
۶
۷
۸
۹
۱۰
۱۱
۱۲
Displaying Values:
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