Mảng (array) là một trong những cấu trúc dữ liệu cơ bản nhất trong C++, cho phép lưu trữ một tập hợp các phần tử có cùng kiểu dữ liệu. Nắm vững cách sử dụng mảng là bước đệm quan trọng để bạn có thể giải quyết các bài toán phức tạp hơn trong lập trình C++. Bài viết này sẽ cung cấp cho bạn những kiến thức cơ bản về mảng trong C++ kèm theo các bài tập có lời giải chi tiết, giúp bạn tự tin bước đầu chinh phục ngôn ngữ lập trình này.
Mảng trong C++ là gì?
Trong C++, mảng là một tập hợp các phần tử có cùng kiểu dữ liệu, được lưu trữ liên tiếp nhau trong bộ nhớ. Mỗi phần tử trong mảng được truy cập thông qua chỉ số (index) của nó, bắt đầu từ 0 cho phần tử đầu tiên.
Ví dụ, một mảng số nguyên có 5 phần tử sẽ được khai báo như sau:
int numbers[5];
Trong đó:
int
: Kiểu dữ liệu của các phần tử trong mảng (ở đây là số nguyên).numbers
: Tên của mảng.[5]
: Kích thước của mảng (số lượng phần tử).
Khai Báo và Khởi Tạo Mảng
1. Khai Báo Mảng
Để khai báo mảng trong C++, bạn sử dụng cú pháp:
<kiểu_dữ_liệu> <tên_mảng>[<kích_thước>];
Ví dụ:
// Khai báo mảng số thực có 10 phần tử
float diem_so[10];
// Khai báo mảng ký tự có 20 phần tử
char chuoi[20];
2. Khởi Tạo Mảng
Bạn có thể khởi tạo giá trị cho mảng ngay khi khai báo:
// Khởi tạo mảng số nguyên có 4 phần tử
int so_nguyen[4] = {1, 2, 3, 4};
Hoặc khởi tạo từng phần tử sau khi khai báo:
// Khai báo mảng số nguyên có 3 phần tử
int so_nguyen[3];
// Khởi tạo giá trị cho từng phần tử
so_nguyen[0] = 10;
so_nguyen[1] = 20;
so_nguyen[2] = 30;
Truy Cập Phần Tử trong Mảng
Bạn có thể truy cập đến từng phần tử trong mảng thông qua chỉ số (index) của nó, bắt đầu từ 0.
Ví dụ:
int numbers[5] = {10, 20, 30, 40, 50};
// In ra phần tử đầu tiên của mảng (có chỉ số 0)
cout << numbers[0]; // Output: 10
// In ra phần tử thứ 3 của mảng (có chỉ số 2)
cout << numbers[2]; // Output: 30
Duyệt Qua Các Phần Tử trong Mảng
Để duyệt qua tất cả các phần tử trong mảng, bạn có thể sử dụng vòng lặp for
:
int numbers[5] = {10, 20, 30, 40, 50};
// Duyệt qua mảng và in ra từng phần tử
for (int i = 0; i < 5; i++) {
cout << numbers[i] << " ";
}
// Output: 10 20 30 40 50
Bài Tập C++ Phần Mảng Có Giải
Bài Tập 1: Tìm Phần Tử Lớn Nhất trong Mảng
Đề bài: Viết chương trình C++ nhập vào một mảng số nguyên gồm n phần tử. Tìm và in ra phần tử lớn nhất trong mảng đó.
Giải:
#include <iostream>
using namespace std;
int main() {
int n;
cout << "Nhap so luong phan tu: ";
cin >> n;
int arr[n];
cout << "Nhap cac phan tu cua mang: ";
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
int max = arr[0];
for (int i = 1; i < n; i++) {
if (arr[i] > max) {
max = arr[i];
}
}
cout << "Phan tu lon nhat trong mang la: " << max << endl;
return 0;
}
Minh họa thuật đồ tìm kiếm phần tử lớn nhất
Bài Tập 2: Đảo Ngược Mảng
Đề bài: Viết chương trình C++ để đảo ngược một mảng số nguyên.
Giải:
#include <iostream>
using namespace std;
int main() {
int n;
cout << "Nhap so luong phan tu: ";
cin >> n;
int arr[n];
cout << "Nhap cac phan tu cua mang: ";
for (int i = 0; i < n; i++) {
cin >> arr[i];
}
// Đảo ngược mảng
for (int i = 0; i < n / 2; i++) {
int temp = arr[i];
arr[i] = arr[n - i - 1];
arr[n - i - 1] = temp;
}
cout << "Mang sau khi dao nguoc la: ";
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
}
cout << endl;
return 0;
}
Minh họa thuật toán đảo ngược mảng
Kết Luận
Bài viết đã cung cấp cho bạn kiến thức cơ bản về mảng trong C++, cách khai báo, khởi tạo, truy cập và duyệt qua các phần tử trong mảng. Bên cạnh đó, bài viết cũng giới thiệu một số Bài Tập C++ Phần Mảng Có Giải chi tiết, giúp bạn luyện tập và nâng cao kỹ năng lập trình của mình.
Bạn có thể tìm hiểu thêm về mảng đa chiều, con trỏ và mảng động để mở rộng kiến thức và giải quyết các bài toán phức tạp hơn. Chúc bạn thành công!