Mảng (array) trong C (phần 4)

Nối tiếp chuỗi bài học C++ về chủ đề mảng (array) trong C++, trong bài viết dưới đây Taimienphi.vn sẽ giới thiệu tiếp cho bạn về mảng 2D (hay mảng 2 chiều) trong C++ là gì. Ngoài ra bạn đọc có thể tham khảo thêm một số bài viết đã có trên Taimienphi.vn để tìm hiểu thêm về hàm và Number trong C++ là gì nhé.

Trong các bài viết mảng (array) trong C++ (phần 1, 2 và 3) trước Taimienphi.vn đã giới thiệu cho bạn về khai báo và khởi tạo mảng trong C++. Trong bài viết mảng (array) trong C++ (phần 4) tiếp theo dưới đây Taimienphi.vn sẽ giới thiệu tiếp cho bạn về mảng 2D (hay mảng 2 chiều) trong C++.

mang array trong c phan 4

Mục Lục bài viết:

1. Mảng 2D trong C++

1.1. Định nghĩa mảng 2 chiều trong C++

1.2. Khởi tạo mảng 2 chiều trong C++

2. Tại sao sử dụng mảng 2 chiều trong C++?

 

 

1. Mảng 2 chiều (2D) trong C++

Mảng 2 chiều (2D) trong C++ còn được gọi là ma trận, mảng này bao gồm các hàng và các cột. Trước hết chúng ta sẽ cùng tìm hiểu cách khai báo và khởi tạo mảng 2D trong C++ như thế nào.

 

1.1 Định nghĩa mảng 2 chiều trong C++

Tương tự như mảng một chiều, chúng ta định nghĩa mảng 2 chiều trong C++ bằng cú pháp dưới đây:

int a[2][4];

Trong đó, a là mảng 2 chiều kiểu int, bao gồm 2 hàng và 4 cột.

mang array trong c phan 4

 

 

1.2 Khởi tạo mảng 2 chiều trong C++

Tương tự như mảng một chiều, chúng ta có thể gán giá trị cho mảng 2 chiều theo 2 cách.

Trong cách đầu tiên, chỉ cần gán một giá trị cho các phần tử của mảng. Nếu không có giá trị nào được gán cho bất kỳ phần tử nào, thì giá trị được gán là 0 theo mặc định.

Giả sử chúng ta đã khai báo mảng 2 chiều a[2][2]. Sau đó, để gán giá trị cho nó, chúng ta cần gán một giá trị cho các phần tử của nó.

int a[2][2];
a[0][0]=1;
a[0][1]=2;
a[1][0]=3;
a[1][1]=4;
Cách thứ 2 là khai báo và gán các giá trị đồng thời như trong mảng một chiều.
int a[2][3] = { 1, 2, 3, 4, 5, 6 };
Ở đây, giá trị của a[0][0] là 1, a[0][1] là 2, a[0][2] là 3, a[1][0] là 4, a[1][1 ] là 5 và a[1][2] là 6.
Chúng ta có thể viết đoạn mã trên như sau:
int a[2][3] = {
{1, 2, 3},
{4, 5, 6 }
};

Trong mảng một chiều khi gán giá trị cho một mảng tại thời điểm khai báo, chúng ta không cần cung cấp kích thước, nhưng trong mảng 2 chiều, chúng ta cần cung cấp ít nhất kích thước thứ hai.

Xem xét các trường hợp dưới đây để khởi tạo một mảng:

int a[2][2] = { 1, 2, 3, 4 }; /* hợp lệ */
int a[ ][2] = { 1, 2, 3, 4 }; /* hợp lệ */
int a[2][ ] = { 1, 2, 3, 4 }; /* không hợp lệ */
int a[ ][ ] = { 1, 2, 3, 4 }; /* không hợp lệ */

 

2. Tại sao sử dụng mảng 2 chiều trong C++?

Giả sử có 3 học sinh, mỗi học sinh học 2 môn học (môn 1 và môn 2), yêu cầu là chúng ta phải hiển thị điểm 2 môn học của 3 học sinh này.

#include
Sử dụng namespace std;
int main(){
float điểm[3][2];
int i,j;
for( i=0; i<3;>
{
/* đầu ra của điểm từ người dùng */
cout < "nhập="" số="" điểm="" của="" học="" sinh="">< (i+1)=""><>
for( j=0; j<2;>{C}{C}{C}
{
cout < "môn="" học"="">< (j+1)=""><>
cin >> điểm [i][j];
}
}
/* in điểm của các học sinh */
for( i=0; i<3;>{C}{C}{C}
{
cout < "điểm="" của="" học="" sinh="" "="">< (i+1)=""><>
for( j=0; j<2;>{C}{C}{C}
{
cout < "môn="" học="" "="">< (j+1)="">< "="" :="" "="">< marks[i][j]=""><>
}
}
Trả về 0;
}
Kết quả đầu ra có dạng:
Nhập số điểm của học sinh 1
Môn học 1
78
Môn học 2
94
Nhập số điểm của học sinh 2
Môn học 1
87
Môn học 2
91
Nhập số điểm của học sinh 3
Môn học 1
62
Môn học 2
56
Điểm số của học sinh 1
Môn học 1 : 78
Môn học 2 : 94
Điểm số của học sinh 2
Môn học 1 : 87
Môn học 2 : 91
Điểm số của học sinh 3
Môn học 1 : 62
Môn học 2 : 56

Trong ví dụ trên, trước tiên chúng ta định nghĩa mảng, bao gồm 3 hàng và 2 cột là float điểm[3][2];

Ở đây, các phần tử của mảng chứa điểm 2 môn học của 3 học sinh như sau:

mang array trong c phan 4 2

Trong ví dụ này, chúng ta lấy giá trị của từng phần tử của mảng bằng cách sử dụng vòng lặp for bên trong vòng lặp for khác.

Trong lần lặp đầu tiên của vòng lặp for bên ngoài, giá trị của i là 0. Với giá trị i là 0, khi vòng lặp for bên trong lặp lại đầu tiên, giá trị của j là 0, vì vậy điểm[i][j] là điểm[0][0]. Bằng cách viết cin >> mark [i] [j]; để lấy giá trị của các điểm[0][0].

Sau đó, vòng lặp for bên trong lặp lại và giá trị của j là 1, điểm [i][j] là điểm[0][1] và giá trị của nó được lấy từ người dùng. Tiếp theo, vòng lặp bên ngoài lặp lại lần thứ hai và giá trị của i là 1 và toàn bộ quá trình tiếp tục.

Sau khi gán các giá trị cho các phần tử mảng, chúng ta sẽ in các giá trị của các phần tử của mảng bằng cách sử dụng vòng lặp for bên trong vòng lặp for khác.

Dưới đây là ví dụ khác về mảng 2 chiều trong C++:

Giả sử có 2 nhà máy và mỗi nhà máy này sản xuất 4 loại mặt hàng khác nhau, bao gồm một số mặt hàng loại 1, một số mặt hàng loại 2, ... . Nhiệm vụ của chúng ta làtính tổng sản phẩm của từng nhà máy, tức là tổng các mặt hàng của từng loại mà nhà máy sản xuất.

#include
Sử dụng namespace std;
int main(){
int s[2][4];
s[0][0] = 2;
s[0][1] = 5;
s[0][2] = 7;
s[0][3] = 4;
s[1][0] = 9;
s[1][1] = 3;
s[1][2] = 2;
s[1][3] = 8;
cout < "tổng="" số="" mặt="" hàng="" của="" nhà="" máy="" 1="" :"=""><>
int sum1 = 0, sum2 = 0;
for(int i = 0; i < 4;="">
{
sum1 += s[0][i];
}
cout < sum1=""><>
cout < "tổng="" số="" mặt="" hàng="" của="" nhà="" máy="" 2="" :"=""><>
for(int j = 0; j < 4;="">
{
sum2 += s[1][j];
}
cout < sum2=""><>
trả về 0;
Kết quả đầu ra:
Tổng số mặt hàng của nhà máy 1:
18
Tổng số mặt hàng của nhà máy 2:
22

Ở đây, s[0][i] tương ứng với số lượng mặt hàng của nhà máy 1 và kiểu i, trong đó chúng ta lấy giá trị từ 0 đến 3 bằng cách sử dụng vòng lặp for và s[1][i] tương ứng số lượng các mặt hàng của nhà máy thứ 2 thuộc kiểu i. Ví dụ. - s[0][2] tương ứng cho loại mặt hàng thứ ba của nhà máy thứ 1 và s[1][2] tương ứng loại mặt hàng thứ ba của nhà máy thứ 2. sum1 là tổng của tất cả các mặt hàng của nhà máy 1. Tương tự với tổng của tất cả các mặt hàng của nhà máy thứ hai.

Ban đầu sum1 là 0. Trong lần lặp đầu tiên, s[0][i] là s[0][0], tương ứng số lượng mặt hàng đầu tiên của nhà máy thứ 1. Vì vậy, sum1 += s[0][i] sẽ là sum1 + = s[0][0]. Vì vậy, sum1 sẽ là 2. Tương tự trong lần lặp thứ hai, s[0][i] sẽ là s[0][1], tương ứng cho loại mặt hàng thứ 2 của nhà máy thứ nhất. Như vậy sum1 sẽ là 2 + 5 tức là 7 và tương tự.

https://thuthuat.taimienphi.vn/mang-array-trong-c-phan-4-45808n.aspx
Trong bài viết mảng (array) trong C++ (phần 4) trên đây Taimienphi.vn vừa giới thiệu cho bạn về mảng 2D (tức mảng 2 chiều) trong C++ là gì. Trong các bài viết tiếp theo Taimienphi.vn sẽ giới thiệu tiếp cho bạn về chuỗi trong C - một nội dung được rất nhiều người lập trình quan tâm, rất nhiều vấn đề liên quan đến chuỗi trong C sẽ được trình bày chi tiết trong bài viết.

Tác giả: Trần Hoạt     (4.0★- 3 đánh giá)  ĐG của bạn?

  

Bài viết liên quan

Mảng (array) trong C (phần 2)
Con trỏ (pointer) trong C
Date và Time trong C
Phạm vi biến trong C
Lệnh điều kiện trong C
Từ khoá liên quan:

Mảng (array) trong C++

, học C++, C++,

Tin Mới

  • Thơ tán gái hay ngắn gọn, theo tên

    Những Status thả thính nay đã xưa rồi, thơ tán gái hay ngắn gọn theo tên giờ lên ngôi giúp bạn trai thả thính, "cưa đổ" cô gái mà mình thích dễ dàng hơn. Nếu bạn đang thích ai đó thì hãy một lần thử trong đời hơn hết là để sau này không hối hận.

  • Cách sử dụng Google dịch hình ảnh trên điện thoại

    Google Translate hay còn gọi với cái tên Google Dịch là công cụ dịch thuật phổ biến hỗ trợ dịch nhiều ngôn ngữ khác nhau. Người dùng có thể sử dụng Google dịch hình ảnh để quét nội dung muốn dịch thay vì nhập từng nội dung.

  • Cách tham gia Đấu Trường Toán Học VioEdu năm 2022

    Các em đang muốn tham gia vào Đấu Trường Toán học VioEdu để có thể học tập trực tuyến dễ dàng, hiệu quả nhưng không biết làm cách nào. Vậy hãy làm theo cách tham gia Đấu Trường Toán Học VioEdu mà Taimienphi.vn chia sẻ dưới đây.

  • Code Sword Master Story mới nhất

    Game nhập vai RPG Sword Master Story được phát hành bởi nhà phá triển Hàn Quốc Super Planet dành cho Android và iOS. Code Sword Master giúp cho người chơi nhận được vé, hồng ngọc để triệu hồi nhân vật qua cổng Gacha.


 Mùa hè tới rồi muốn so sánh giá tìm điều hòa giá rẻ nhất thị trường hãy dùng TopGia để so sanh gia có nhiều mẫu dieu hoa để so sanh sanh, xem dieu hoagiá rẻ để so sánh giá