Số dòng bằng số cột thì gọi là mảng gì năm 2024

Để tiện cho việc đánh số và biểu diễn trên hình, thường người ta sẽ quy ước đánh số các hàng từ trên xuống dưới và các cột từ trái qua phải:

Tuy nhiên, có một lưu ý nho nhỏ, đó là khi khai báo mảng hai chiều các bạn không nên khai báo bằng biến cục bộ. Lí do là vì, khi khai báo biến cục bộ thì bộ nhớ cấp phát cho biến sẽ lưu trong stack của máy tính, và đối với một số trình biên dịch có thể gây ra lỗi không đáng có!

2. Khởi tạo mảng hai chiều

Giống như mảng một chiều, mảng hai chiều cũng có thể khởi tạo trước giá trị. Cú pháp như sau:

{Kiểu_phần_tử} {Tên_mảng}[{Số_hàng}][{Số_cột}] = 
{
    {{Danh_sách_phần_tử_của_hàng_0}};    
    {{Danh_sách_phần_tử_của_hàng_1}};
    ...
    {{Danh_sách_phần_tử_của_hàng_cuối}};
};

Ví dụ: Khởi tạo mảng hai chiều kích thước 3×43 \times 4 gồm 1212 số nguyên:

int a[3][4] = 
{
    {1, 2, 3, 4};
    {5, 6, 7, 8};
    {9, 10, 11, 12};
};

Ngoài cách khởi tạo mảng với số phần tử cố định, trên mảng hai chiều cũng có thể khởi tạo với các cách không khai báo số lượng hàng, cột hoặc không khởi tạo hết các phần tử giống như mảng một chiều. Bạn đọc có thể tự mình cài đặt các cách khởi tạo khác nhau để kiểm chứng. Trong C++ không chỉ có mảng hai chiều, mà còn có mảng nhiều chiều, nhưng sẽ khá khó tưởng tượng và cũng không thường xuyên sử dụng, vì vậy chúng ta không cần đề cập đến ở đây.

3. Nhập xuất dữ liệu trên mảng hai chiều

Ví dụ dưới đây sẽ minh hoạt một chương trình yêu cầu nhập vào một mảng hai chiều kích thước M×NM\times N và in ra toàn bộ mảng đó theo thứ tự hàng cột. Bạn đọc có thể áp dụng đúng phương pháp này cho việc nhập và truy xuất dữ liệu trên các mảng 33 chiều, 44 chiều,...:


# include 
using namespace std;  
int main[]
{
    int M, N;  
    cin >> M >> N;
    for [int i = 0; i < M; ++i]
        for [int j = 0; j < N; ++j]
            cin >> a[i][j];
    cout 

Chủ Đề