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

Con trỏ (pointer) trong C
Mảng (array) trong C (phần 2)
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++,

SOFT LIÊN QUAN
  • Dev C++

    Trình biên dịch C, C++ đa tính năng

    Dev C++ là môi trường phát triển tích hợp (IDE) dành cho lập trình viên C và C++, hỗ trợ đầy đủ tính năng soạn thảo, biên dịch và gỡ lỗi với công cụ MinGW. Bloodshed Dev C++ phù hợp cho cả người mới lẫn lập trình viên ch ...

Tin Mới

  • Cách tra điểm thi trên Trạng Nguyên Tiếng Việt

    Sau khi hoàn tất bài thi, các em học sinh có thể kiểm tra điểm số ngay trên trang web Trạng Nguyên Tiếng Việt để biết được sức học của mình đến đầu, cải thiện việc học của mình hiệu quả. Nếu các em chưa biết tra điểm thì tham khảo ngay cách tra điểm thi trên Trạng Nguyên Tiếng Việt của Taimienphi.vn.

  • Cách cài đặt Font chữ tiểu học, gõ phông chữ tiểu học nhanh nhất

    Nếu bạn chưa biết cách cài Font chữ tiểu học, hãy xem ngay 5 bước đơn giản từ Taimienphi để dễ dàng thiết lập cho máy tính của mình nhé.

  • 1 tỷ có mấy số 0

    Nếu đang cần tính toán, quy đổi các chữ số hàng tỷ ra các con số hàng trăm, vạn, triệu,..., nhưng không nhớ chính xác 1 tỷ có mấy số 0 hay 1 triệu có mấy số 0 thì bài viết này sẽ rất hữu ích với bạn. Vận dụng cách ghi nhớ các số, chữ số hàng tỷ, bạn đọc sẽ nhanh chóng tính toán và quy đổi sang các giá trị tương ứng

  • Cách xóa tài khoản game Roblox vĩnh viễn

    Nhiều phụ huynh, người chơi lựa chọn cách xóa tài khoản game ROBLOX vĩnh viễn để giúp con em và bản thân tập trung vào việc học tập tốt hơn. Tuy nhiên làm thế nào để xóa tài khoản Roblox? Xóa tài khoản game Roblox có khó không? Để trả lời câu hỏi này hãy cùng Taimienphi.vn tìm hiểu thông qua các cách xóa tài khoản game Roblox trong bài viết dưới đây nhé.