Lập trình là gì? Phân loại ngôn ngữ lập trình
Bài này sẽ giới thiệu về các khái niệm cơ bản trong lập trình như chương...
Kết quả sẽ mở trong tab mới, giới hạn trong website này.
Truy cập nhanh
Tìm kiếm gần đây
1. Mảng hai chiều là gì? Trong lập trình, có những trường hợp cần lưu trữ dữ liệu dưới dạng ma trận gồm nhiều dòng và nhiều cột. Do đó, cần một cấu trúc dữ liệu để lưu trữ ma trận. Đó là mảng hai chiều. Mảng 2 chiều lưu trữ các phần tử theo […]
Trong lập trình, có những trường hợp cần lưu trữ dữ liệu dưới dạng ma trận gồm nhiều dòng và nhiều cột.
Do đó, cần một cấu trúc dữ liệu để lưu trữ ma trận. Đó là mảng hai chiều. Mảng 2 chiều lưu trữ các phần tử theo dạng bảng gồm dòng và cột.
Có thể hình dùng mảng 2 chiều ở trên như là một bảng gồm 3 dòng và 4 cột. Mỗi dòng thì lưu trữ như mảng một chiều.
<kiểu dữ liệu> <tên biến mảng>[<Số dòng>][<Số cột>];
Ví dụ:
int Mang2Chieu[3][4];int temp[4][3] = {50, 70, 60, 48, 75, 62, 51, 69, 60, 52, 78, 63}; 50 70 60
48 75 62
51 69 60
52 78 63
int temp[4][3] = {{50, 70, 60}, {48, 75, 62}, {51, 69, 60}, {52, 78, 63}};50 70 60
48 75 62
51 69 60
52 78 63
int temp[7][4] = {{50, 70, 60}, {48, 75, 62}, {51, 69, 60}, {52, 78, 63}};50 70 60 0
48 75 62 0
51 69 60 0
52 78 63 0
0 0 0 0
0 0 0 0
0 0 0 0
int temp[][3] = {50, 70, 60, 48, 75, 62, 51, 69, 60, 52, 78, 63};50 70 60
48 75 62
51 69 60
52 78 63
Thông qua chỉ số hàng và chỉ số cột trong mảng. Cú pháp: <tên biến mảng>[<cs1>][<cs2>]
Ví dụ: Có mảng int a[3][4] = {{50, 70, 60, 80}, {48, 75, 62, 25}, {51, 69, 60, 21}}; Truy xuất phần tử ở dòng 1 cột 2 là a[1][2];
Các truy xuất hợp lệ: a[0][0], a[0][1], …, a[2][2], a[2][3]
Các truy xuất không hợp lệ: a[-1][0], a[2][4], a[3][3],…
#include <iostream>
#include <string>
using namespace std;
int main() {
int temp[4][3];//chưa khởi tạo
for(int i=0;i<4;i++){
for(int j=0;j<3;j++){
cout<<temp[i][j]<<" ";//truy xuất giá trị rác
}
cout<<"\n";
}
system("pause");
}
-858993460 -858993460 -858993460
-858993460 -858993460 -858993460
-858993460 -858993460 -858993460
-858993460 -858993460 -858993460
Khai báo int temp[][]; sẽ bị lỗi, khai báo đúng là int temp[2][3];
int temp[2][3];
temp[2][3] = {{1,2, 3},{3,4, 5}};//error
temp = {{1,2, 3},{3,4, 5}};//error
Khi khai báo mà không khởi tạo thì cần viết chương trình nhập mảng 2 chiều.