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 sử dụng As soon as trong tiếng Anh

    As soon as là một trong những liên từ được sử dụng rất phổ biến trong tiếng Anh, vì vậy, các bạn cần nắm bắt được cách sử dụng As soon as trong tiếng Anh để có được kiến thức hữu ích giúp cho việc học tiếng Anh của mình

  • Cách phát âm đuôi -ed trong tiếng Anh

    Để các bạn có thể biết được các phát âm các từ đuôi -ed được chính xác nhất, bài viết này sẽ giới thiệu đến các bạn nội dung cách phát âm đuôi -ed trong tiếng Anh, qua đó, các bạn có thể giải quyết được những bài tập

  • Số thứ tự trong tiếng Anh, cách viết, đọc

    Số thứ tự trong tiếng Anh, cách viết, đọc không giống với việc viết các số đếm, số thứ tự, cụ thể, các bạn chỉ cần nắm được khoảng 20 số thứ tự đầu tiên, các bạn đã có thể dễ dàng biết đọc và ghép tất cả các số thứ tự

  • Cách thiết lập ứng dụng mặc định trên Android dễ dàng

    Tùy chỉnh ứng dụng mặc định Android giúp thiết bị của bạn hoạt động đúng ý muốn. Tải Miễn Phí sẽ chỉ bạn mẹo hay để cài chuẩn, tránh lỗi phiền phức