Posts Kiểu mảng C++
Post
Cancel

Kiểu mảng C++

Cấu trúc mảng (array) là dãy hữu hạn các phần tử cùng kiểu. Mảng được đặt tên và mỗi phần tử của nó có một chỉ số riêng biệt.

Xét hai cấu trúc mảng thông dụng:

  • Mảng một chiều
  • Mảng hai chiều

1. Mảng một chiều

Khai báo

Cú pháp:

1
Kieu  Ten_mang  [  Kich_co_mang  ];

Ví dụ:

1
2
3
int A[10]; //khai báo mảng A gồm 10 phần tử số nguyên
char sign[4] = {'L','O','V','E'}; //Mảng sign gồm 4 phần tử được khởi tạo lần lượt là kí tự 'L','O','V','E'
float B[1000]={0.0}; //Mảng B gồm 1000 phần tử, các phần tử được khởi tạo là 0.0

Truy cập các phần tử mảng

Một mảng được truy cập bởi cách đánh chỉ số trong tên của mảng.

Cú pháp:

1
bien_mang[ chi_so_phan_tu];

Ví dụ:

1
2
A[3] = 192; //Gán 192 cho ô A[3]
sign[2] = 'U'; //Gán kí tự 'U' cho phần tử sign[2]

Bài toán ví dụ 1: Cho số nguyên N (1<=N<=10^6) và N số nguyên A_1, A_2,…, A_N. Hãy in ra dãy số theo thứ tự ngược lại với thứ tự nhập?

1
2
3
4
5
6
Ví d: N = 5; dãy gm {3, 6, 2, 1, 9} -> Output: 9 1 2 6 3
Thut toán: 
B1. Khai báo N, dãy A gm N phn t A[1],A[2],...,A[N]
B2. Nhp N
B3. Nhp dãy A
B4. In ra dãy A theo th t t A[N] v A[1]

B1. Khai báo N và dãy A[1], A[2],…, A[N]

1
2
3
int N;
const int maxN = 1000003;
int A[maxN];

B2. Nhập N

1
cin >> N;

B3. Nhập dãy A

1
2
for (int i=1; i<=N; i++) 
  cin >> A[i];

B4. In ra dãy A theo thứ tự ngược lại

1
2
for (int i=N; i>=1; i--) 
  cout << A[i] << " ";

2. Mảng hai chiều

Một mảng hai chiều về bản chất là mảng của các mảng một chiều. Các phần tử được thể hiện như một cấu trúc bảng.

Khai báo

Cú pháp:

1
kieu_du_lieu bien_mang[s_hàng][s_ct];

Ví dụ:

Khai báo mảng A gồm N hàng, M cột các số nguyên

1
int A[N][M];

Truy cập phần tử mảng

Mỗi ô (phần tử) trong mảng hai chiều được xác định bởi chỉ số hàng và chỉ số cột theo cú pháp như ở ví dụ sau:

1
2
3
4
5
int A[2][2];
A[0][0]=1;
A[0][1]=2;
A[1][0]=3;
A[1][1]=4;

Ta được một mảng hai chiều như sau:

Mảng A kích thước 2x2

Ví dụ: Nhập vào một mảng 2 chiều gồm N hàng, M (1<=N,M<=10^3)$ cột các số nguyên trong [1,1000]. In ra mảng đó theo cấu trúc N dòng, M cột như thứ tự nhập vào.

1
2
3
4
5
6
7
8
9
10
Ví d: N = 3, M = 4
Mng gm 12 phn t như sau:
1 2 3 4
5 6 7 8
9 10 11 12

-> Output:
1 2 3 4
5 6 7 8
9 10 11 12

Thuật toán:

  • B1. Khai báo N, M và mảng A gồm N dòng, M cột
  • B2. Nhập N, M
  • B3. Nhập mảng A[N][M]
  • B4. In ra mảng A

Cụ thể từng bước như sau:

  • B1. Khai báo N, M và mảng A gồm N dòng, M cột
1
2
3
4
int N, M;
const int maxN = 1001;
const int maxM = 1001;
int A[maxN][maxM];
  • B2. Nhập N, M
1
cin >> N >> M;
  • B3. Nhập mảng A[N][M]
1
2
3
for (int i=1; i<=N; i++)
  for (int j=1; j<=M; j++)
    cin >> A[i][j];
  • B4. In ra mảng A
1
2
3
4
5
for (int i=1; i<=N; i++){
  for (int j=1; j<=M; j++)
    cout << A[i][j] << " ";
  cout << endl;
}
This post is licensed under CC BY 4.0

Trending Tags

Contents

Trending Tags