Trong hướng dẫn này, bạn sẽ học cách làm việc với mảng đa chiều (mảng hai chiều và ba chiều) với sự trợ giúp của các ví dụ.
Trong lập trình C, bạn có thể tạo một mảng các mảng. Các mảng này được gọi là mảng nhiều chiều. Ví dụ,
float x(3)(4);
Ở đây, x là một mảng hai chiều (2d). Mảng có thể chứa 12 phần tử. Bạn có thể nghĩ mảng như một bảng có 3 hàng và mỗi hàng có 4 cột.
Tương tự, bạn có thể khai báo một mảng ba chiều (3d). Ví dụ,
float y(2)(4)(3);
Ở đây, mảng y có thể chứa 24 phần tử.
Khởi tạo một mảng đa chiều
Đây là cách bạn có thể khởi tạo mảng hai chiều và ba chiều:
Khởi tạo mảng 2d
// Different ways to initialize two-dimensional array 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);
Khởi tạo mảng 3d
Bạn có thể khởi tạo mảng ba chiều theo cách tương tự như mảng hai chiều. Đây là một ví dụ,
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)));
Ví dụ 1: Mảng hai chiều để lưu trữ và in các giá trị
// C program to store temperature of two cities of a week and display it. #include const int CITY = 2; const int WEEK = 7; int main() ( int temperature(CITY)(WEEK); // Using nested loop to store values in a 2d array 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("Displaying values: "); // Using nested loop to display vlues of a 2d array for (int i = 0; i < CITY; ++i) ( for (int j = 0; j < WEEK; ++j) ( printf("City %d, Day %d = %d", i + 1, j + 1, temperature(i)(j)); ) ) return 0; )
Đầu ra
Thành phố 1, Ngày 1: 33 Thành phố 1, Ngày 2: 34 Thành phố 1, Ngày 3: 35 Thành phố 1, Ngày 4: 33 Thành phố 1, Ngày 5: 32 Thành phố 1, Ngày 6: 31 Thành phố 1, Ngày 7:30 Thành phố 2, Ngày 1: 23 Thành phố 2, Ngày 2: 22 Thành phố 2, Ngày 3: 21 Thành phố 2, Ngày 4: 24 Thành phố 2, Ngày 5: 22 Thành phố 2, Ngày 6: 25 Thành phố 2, Ngày 7: 26 Hiển thị giá trị : Thành phố 1, Ngày 1 = 33 Thành phố 1, Ngày 2 = 34 Thành phố 1, Ngày 3 = 35 Thành phố 1, Ngày 4 = 33 Thành phố 1, Ngày 5 = 32 Thành phố 1, Ngày 6 = 31 Thành phố 1, Ngày 7 = 30 Thành phố 2, Ngày 1 = 23 Thành phố 2, Ngày 2 = 22 Thành phố 2, Ngày 3 = 21 Thành phố 2, Ngày 4 = 24 Thành phố 2, Ngày 5 = 22 Thành phố 2, Ngày 6 = 25 Thành phố 2, Ngày 7 = 26
Ví dụ 2: Tổng của hai ma trận
// C program to find the sum of two matrices of order 2*2 #include int main() ( float a(2)(2), b(2)(2), result(2)(2); // Taking input using nested for loop printf("Enter elements of 1st matrix"); 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)); ) // Taking input using nested for loop printf("Enter elements of 2nd matrix"); 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)); ) // adding corresponding elements of two arrays for (int i = 0; i < 2; ++i) for (int j = 0; j < 2; ++j) ( result(i)(j) = a(i)(j) + b(i)(j); ) // Displaying the sum printf("Sum Of Matrix:"); for (int i = 0; i < 2; ++i) for (int j = 0; j < 2; ++j) ( printf("%.1f ", result(i)(j)); if (j == 1) printf(""); ) return 0; )
Đầu ra
Nhập các phần tử của ma trận thứ 1 Nhập a11: 2; Nhập a12: 0,5; Nhập a21: -1.1; Nhập a22: 2; Nhập các phần tử của ma trận thứ 2 Nhập b11: 0,2; Nhập b12: 0; Nhập b21: 0,23; Nhập b22: 23; Tổng của ma trận: 2,2 0,5 -0,9 25,0
Ví dụ 3: Mảng ba chiều
// C Program to store and print 12 values entered by the user #include int main() ( int test(2)(3)(2); printf("Enter 12 values: "); 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)); ) ) ) // Printing values with proper index. printf("Displaying values:"); 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", i, j, k, test(i)(j)(k)); ) ) ) return 0; )
Đầu ra
Nhập 12 giá trị: 1 2 3 4 5 6 7 8 9 10 11 12 Giá trị hiển thị: 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 thử nghiệm (1) (0) (1) = 8 thử nghiệm (1) (1) (0) = 9 thử nghiệm (1) (1) (1) = 10 thử nghiệm (1) (2) (0) = 11 thử nghiệm (1) (2) (1) = 12