LẬP TRÌNH C: MẢNG HAI CHIỀU

Trong C ++, bạn cũng có thể định nghĩa những mảng đa chiều dễ dàng và đơn giản là mảng của một mảng.Dữ liệu trong số mảng đa chiều được tàng trữ ở dạng bảng (theo máy tự thiết yếu hàng)

Thao tác cùng ví dụ với Mảng 2 chiều

Ví dụ:

int x<3><4>;Trong lấy một ví dụ trên,xlà một mảng hai chiều.Nó có thể chứa buổi tối đa 12 yếu tố.

Bạn đang xem: Lập trình c: mảng hai chiều

Chúng ta có thể nghĩ mảng này là một trong những bảng bao gồm 3 hàng cùng mỗi hàng có 4 cột như hình mặt dưới.

*

Các bộ phận trong mảng hai chiều trong thiết kế C ++

Xuất các bộ phận mảng 2 chiều

Đểtruy xuất cực hiếm của phần tửtrong mảng, ta sử dụngcú pháp:

<><>;

Ví dụ:Cho mảng như sau:

int a<2><3> // 2 dòng, 3 cột​Các truy tìm xuất:

Hợp lệ:a<0><0>, a<0><1>, …, a<1><1>, a<1><2>Không hòa hợp lệ:a<-1><0>, a<0><-1>, a<2><3>, … => cho hiệu quả không như mong muốn (có thể gây chết chương trình).

Chú ý:khi truy hỏi xuất một trong những phần tử mảng, luôn đảm bảo an toàn chỉ số của phần tử đó là hợp lệ vào phạm vi của mảng.

1.Nhập và xuất mảng 2 chiều

Bên bên dưới là ví dụ về nhập, xuất dữ liệu cho mảng:

#include #include // for srand() & rand()#include // for time()using namespace std;// có mang số thành phần mảng#define ROW 100#define COL 100// khai báo prototypevoid nhapMang(int mt<>, int &m, int &n);void xuatMang(int mt<>, int m, int n);int main()int mt; // mảng myArray có MAX phần tửint nRow, nCol; // số bộ phận dòng cùng cột được sử dụng// nhập xuất mảng tự độngnhapMang(mt, nRow, nCol);xuatMang(mt, nRow, nCol);return 0;// hàm nhập mảngvoid nhapMang(int mt<>, int &m, int &n){// khởi sinh sản số ngẫu nhiênsrand(time(NULL));cout > m;cout > n;// khởi tạo thành mảng tự nhiên từ <0><0> mang lại .for (int i = 0; i

Output:

Nhap so dong : 2Nhap so cot : 3616346379240

2.Tính tổng các bộ phận trong mảng

Yêu cầu:cho trước ma trậnmt, kích thướcmxn. Tính tổng các thành phần trên dòngd, cộtc.

Ý tưởng:duyệt ma trận và cùng dồn các bộ phận có tọa độ (dòng, cột) thỏa yêu thương cầu.

#include #include // for srand() & rand()#include // for time()using namespace std;// định nghĩa số bộ phận mảng#define ROW 100#define COL 100// khai báo prototypevoid nhapMang(int mt<>, int &m, int &n);void xuatMang(int mt<>, int m, int n);int tongDong(int mt<>, int n, int d);int tongCot(int mt<>, int m, int c);int main(){int mt; // mảng myArray gồm MAX phần tửint nRow, nCol; // số bộ phận dòng và cột được sử dụng// nhập xuất mảng trường đoản cú độngnhapMang(mt, nRow, nCol);xuatMang(mt, nRow, nCol);// tính tổng loại d, cột cint d;cout > d;cout > c;cout > m;cout > n;// khởi chế tạo ra mảng đột nhiên từ <0><0> mang lại .for (int i = 0; i Ouput

Nhap so dong : 2Nhap so cot : 3834014472265Nhap dong can tinh tong: 1Tong dong: 134Nhap dong can tinh tong: 2Tong dong: 79

3.Tìm giá chỉ trị lớn số 1 của mảng 2 chiều

Yêu cầu:Cho trước ma trậnmt, kích thướcmxn. Tìm giá chỉ trị lớn nhất trong ma trậnmt(gọi làmax)

Ý tưởng:

Giả sử giá chỉ trịmaxhiện trên là giá chỉ trị bộ phận đầu tiênmt<0><0>Lần lượt soát sổ các bộ phận còn lại để cập nhậtmax.

#include #include // for srand() và rand()#include // for time()using namespace std;// có mang số thành phần mảng#define ROW 100#define COL 100// khai báo prototypevoid nhapMang(int mt<>, int &m, int &n);void xuatMang(int mt<>, int m, int n);int timMax(int mt<>, int m, int n);int main()int mt; // mảng myArray có MAX phần tửint nRow, nCol; // số phần tử dòng cùng cột được sử dụng// nhập xuất mảng trường đoản cú độngnhapMang(mt, nRow, nCol);xuatMang(mt, nRow, nCol);// tra cứu maxint max = timMax(mt, nRow, nCol);cout > m;cout > n;// khởi sinh sản mảng ngẫu nhiên từ <0><0> mang đến .for (int i = 0; i max)max = mt;return max;Ouput:Nhap so dong : 2Nhap so cot : 3253741955353Max = 95

Thao tác cùng với mảng nhiều chiều

1. Mảng đa chiều hoạt động như gắng nào?

Mảng cha chiều cũng vận động theo cách tương tự như mảng hai chiều .Ví dụ:

float x<2><4><3>;Trong mảng này, xcó thể chứa về tối đa 24 yếu hèn tố.

Chúng ta rất có thể tìm ra tổng số bộ phận trong mảng chỉ bằng phương pháp nhân form size của nó:

2 x 4 x 3 = 24

2. Kích cỡ của các mảng nhiều chiều

Tổng số thành phần có thể được tàng trữ trong một mảng nhiều chiều rất có thể được tính bằng cách nhân form size của tất cả các kích thước.Ví dụ:Mảngint x <10> <20>có thể lưu trữ tổng (10 * 20) = 200 phần tử.Tương tự mảngint x <5> <10> <20>có thể tàng trữ tổng (5 * 10 * 20) = 1000 phần tử.

3. Khởi chế tạo mảng nhiều chiều

Giống như một mảng bình thường, chúng ta cũng có thể khởi tạo ra một mảng những chiều theo khá nhiều cách.

Xem thêm: Cách Ghi Chú Trên File Pdf Bằng Foxit Reader, Cách Tạo Ghi Chú Trong File Pdf

Mảng hai phía là bề ngoài đơn giản độc nhất của mảng đa chiều.Chúng ta có thể thấy một mảng hai phía là mảng của mảng một chiều để dễ dàng nắm bắt hơn.

Hình thức cơ phiên bản của khai báo mảng hai chiều có form size x, y:Cú pháp:

; Kiểu tài liệu : một số loại dữ liệu sẽ được lưu trữ. Kiểu tài liệu hợp lệ trong C++Chúng ta rất có thể khai báo một mảng số nguyên hai phía có size "x" có form size 10,20 là:int x <10> <20>;Các thành phần trong mảng hai phía thường được gọi là x trong các số đó i là số hàng với "j" là số cột.Một mảng hai chiều rất có thể được xem như một bảng có những cột "x" với "y" trong những số ấy số sản phẩm nằm trong tầm từ 0 mang lại (x-1) cùng số cột nằm trong tầm từ 0 mang đến (y-1).Mảng hai chiều "x" với 3 hàng với 3 cột được hiển thị dưới

*

Có 02 cách để khởi chế tạo một mảng hai phía :

1. Cách thức đầu tiên:

int test<2><3> = 2, 4, 5, 9, 0, 19;Phương pháp trên ko được ưa thích.Một cách giỏi hơn để tạo mảng này cùng với các bộ phận mảng tựa như được đưa ra dưới đây.2. Phương pháp tốt hơn :int test<2><3> = 2, 4, 5, 9, 0, 19;Mảng này có 2 hàng cùng 3 cột, đó là nguyên nhân tại sao bọn họ có nhị hàng bộ phận với 3 phần tử mỗi phần.

*

Khởi tạo mảng ba chiều

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, 5, 1, 4, 9;Đây chưa phải là 1 cách tốt để khởi chế tác một mảng tía chiều.Một cách giỏi hơn để khởi tạo mảng này là:

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 ;Truy cập các bộ phận trong mảng cha chiều: truy vấn các phần tử trong mảng cha chiều cũng giống như như các bộ phận mảng nhị chiều.

Ví dụ 1: Mảng nhì chiều

// C++ Program khổng lồ display all elements// of an initialised two dimensional array#include using namespace std;int main() { int test<3><2> = 2, -5, 4, 0, 9, 1; // thực hiện vòng lặp lồng nhau // truy cập các sản phẩm của mảng for (int i = 0; i Ouput:test<0><0> = 2test<0><1> = -5test<1><0> = 4test<1><1> = 0test<2><0> = 9test<2><1> = 1Trong ví dụ như trên, ta đang khởi tạo mộtintmảnghai chiềucó tên testcó 3 "hàng" và 2 "cột".

Ở đây, ta sẽ sử dụngforvòng lặplồng nhauđể hiển thị các phần tử mảng.

vòng lặp bên ngoài từi = 0đểi = 2truy cập vào các hàng của mảngvòng lặp bên phía trong từj = 0đểj = 1truy cập những cột của mảng

Cuối cùng, ta vẫn in các bộ phận mảng trong những lần lặp.

Ví dụ 2: Mảng tía chiều

// C++ Program lớn Store value entered by user in// three dimensional array và display it.#include using namespace std;int main() { // Mảng này hoàn toàn có thể lưu trữ buổi tối đa 12 phần tử (2x3x2) int test<2><3><2> = 1, 2, 3, 4, 5, 6 , 7, 8, 9, 10, 11, 12 ; for (int i = 0; i Ouput

test<0><0><0> = 1test<0><0><1> = 2test<0><1><0> = 3test<0><1><1> = 4test<0><2><0> = 5test<0><2><1> = 6test<1><0><0> = 7test<1><0><1> = 8test<1><1><0> = 9test<1><1><1> = 10test<1><2><0> = 11test<1><2><1> = 12Khái niệm cơ phiên bản về các yếu tố in của mảng 3 chiều tựa như như mảng 2 chiều.

Tuy nhiên, vị ta đang làm việc 3 chiều bắt buộc ta phải thực hiện vòng lặp lồng nhau cùng với 3 vòng thay vị chỉ 2 vòng.

Kết

Như bạn có thể thấy, độ tinh vi của mảng tăng theo cấp số nhân với sự tăng thêm kích thước. Giả dụ có thắc mắc hay ý kiến bổ sung, chúng ta hãy để lại comment phía dưới nha