Bài tập và lời giải mảng trong c++

Mảng là một cấu trúc dữ liệu rất quan trọng và được sử dụng rộng rãi trong ngôn ngữ C++. Để giúp các bạn hiểu rõ hơn về mảng, Isinhvien sẽ chia sẻ đến các bạn những bài tập về mảng cực hay kèm đáp án chi tiết mà Isinhvien đã tổng hợp và chọn lọc từ nhiều nguồn khác nhau. Trước khi bước vào làm bài tập, hãy chắc rằng bạn đã hiểu được các kiến thức cơ bản về mảng trong C++, nếu chưa thì tham khảo bài viết Tất tần tật về mảng trong C++ của Isinhvien ngay nhé!

Bài tập và lời giải mảng trong c++

Bài tập mảng 1 chiều trong C++

Dưới đây là 4 bài tập về mảng 1 chiều trong C++ cùng với đáp án vô cùng chi tiết sẽ giúp bạn luyện tập về mảng 1 chiều dễ dàng hơn.

1. Tính tổng, tích và giá trị trung bình của một mảng

Đề bài: Nhập vào số lượng phần tử và giá trị từng phần tử của mảng. In ra màn hình tổng, tích và giá trị trung bình của mảng đó.

Đáp án:

include

using namespace std; int main() {     int n;     cout << "Nhap so luong phan tu cua mang: ";     cin >> n;     int a[n];     //nhập các phần tử mảng     for(int i=0; i> a[i];     }     long tong=0, tich=1;     double tb;     for(int i=0; i

Kết quả thực thi:

Nhap so luong phan tu cua mang: 7 Nhap vao phan tu a[0]: 4 Nhap vao phan tu a[1]: 3 Nhap vao phan tu a[2]: 5 Nhap vao phan tu a[3]: 3 Nhap vao phan tu a[4]: 2 Nhap vao phan tu a[5]: 4 Nhap vao phan tu a[6]: 6 Tong cac phan tu cua mang: 27 Tich cac phan tu cua mang: 8640 Gia tri trung binh cac phan tu cua mang: 3

2. Tìm giá trị lớn nhất và nhỏ nhất của mảng

Đề bài: Nhập vào số lượng phần tử và giá trị từng phần tử của mảng, in ra màn hình giá trị lớn nhất, nhỏ nhất của mảng vừa nhập.

Đáp án:

include

using namespace std; int main() {     int n;     cout << "Nhap so luong phan tu cua mang: ";     cin >> n;     int a[n];     //nhap cac phan tu mang     for(int i=0; i> a[i];     }     //khởi tạo 2 biến min max có giá trị ban đầu là a[0]     int min=a[0], max=a[0];     //Tìm min max     for(int i=1; imax) max=a[i];         if(a[i]

Kết quả thực thi:

Nhap so luong phan tu cua mang: 5 Nhap vao phan tu a[0]: 3 Nhap vao phan tu a[1]: 5 Nhap vao phan tu a[2]: 7 Nhap vao phan tu a[3]: 6 Nhap vao phan tu a[4]: 3 Gia tri lon nhat cua mang la: 7 Gia tri nho nhat cua mang la: 3

3. Sắp xếp mảng theo giá trị tăng dần

Đề bài: Nhập vào số phần tử và giá trị từng phần tử của mảng. Sắp xếp mảng trên và in ra màn hình kết quả theo chiều tăng dần.

Đáp án:

include

using namespace std; void Swap(int *x, int *y) { int temp;   temp=*x;   *x=*y;   *y=temp; } int main() {     int n;     cout << "Nhap so luong phan tu cua mang: ";     cin >> n;     int a[n];     //nhập các phần tử mảng     for(int i=0; i> a[i];     }     //sắp xếp mảng     for(int i = 0; i < n; i++){         int min=i,j;         for(int j = i+1; j <= n; j++){             if(a[j]

Kết quả thực thi:

Nhap so luong phan tu cua mang: 5 Nhap vao phan tu a[0]: 6 Nhap vao phan tu a[1]: 5 Nhap vao phan tu a[2]: 3 Nhap vao phan tu a[3]: 4 Nhap vao phan tu a[4]: 2 2 3 4 5 6

Trong bài này, Isinhvien sử dụng phương pháp sắp xếp chọn. Còn rất nhiều phương pháp sắp xếp mảng khác nữa rất thú vị trong C++ nên nếu các bạn muốn tìm hiểu thêm thì hãy tham khảo ngay bài viết Tổng hợp các thuật toán sắp xếp trong C/C++ của Isinhvien nhé!

4. Tìm phần tử có tần suất xuất hiện nhiều nhất trong mảng và xuất hiện bao nhiêu lần

Đề bài: Nhập vào số phần tử và giá trị từng phần tử của mảng. Tìm phần tử có tần suất xuất hiện nhiều nhất trong mảng và xuất hiện bao nhiêu lần, sau đó in ra màn hình

Đáp án

include

using namespace std; void Swap(int *x, int *y) { int temp;   temp=*x;   *x=*y;   *y=temp; } int main() {     int n;     cout << "Nhap so luong phan tu cua mang: ";     cin >> n;     int a[n];     //nhập các phần tử mảng     for(int i=0; i> a[i];     }     //sắp xếp mảng     for(int i = 0; i < n; i++){         int min=i,j;         for(int j = i+1; j <= n; j++){             if(a[j]mode[i][0];mode[i][1]=a[i];}     //tim so lan suat hien nhieu nhat     int max;     int k=0;     max=mode[0][0];     for(int j=0;j<10;j)     if(max

Kết quả thực thi:

Nhap so luong phan tu cua mang: 10 Nhap vao phan tu a[0]: 3 Nhap vao phan tu a[1]: 2 Nhap vao phan tu a[2]: 32 Nhap vao phan tu a[3]: 143 Nhap vao phan tu a[4]: 24 Nhap vao phan tu a[5]: 32 Nhap vao phan tu a[6]: 2 Nhap vao phan tu a[7]: 3 Nhap vao phan tu a[8]: 2 Nhap vao phan tu a[9]: 2 Gia tri xuat hien nhieu nhat la:2 Xuat hien 4 lan.

Bài tập mảng 2 chiều trong C++

Dưới đây là 1 bài tập về mảng 2 chiều trong C++ (1 bài cơ bản và 1 bài nâng cao) cùng với đáp án vô cùng chi tiết sẽ giúp bạn luyện tập về mảng 2 chiều dễ dàng hơn.

5. Tính tổng 2 ma trận

Đề bài: Nhập vào kích thước và giá trị của từng ma trận. Kiểm tra xem 2 ma trận có cùng kích thước không và in ra màn hình ma trận tổng của 2 ma trận trên.

Đáp án:

include

include

using namespace std; int main() {    int i, j, matrix1[100][100], matrix2[100][100], matrix3[100][100];    int row1, col1, row2, col2;    cout << "Nhap so hang cua matrix1: ";    cin >> row1;    cout << "Nhap so cot cua matrix1: ";    cin >> col1;    cout << "Nhap so hang cua matrix2: ";    cin >> row2;    cout << "Nhap so cot cua matrix2: ";    cin >> col2;    /     Truoc khi nhap cac phan tu, kiem tra xem so hang va so cot     cua hai ma tran co bang nhau khong   /    if (row1 != row2 || col1 != col2) {       cout << "\nHai ma tran khong cung kich co!";       exit(0);    }    //Nhap cac phan tu cua ma tran 1    cout<<"\nNhap ma tran 1\n";    for (i = 0; i < row1; i++) {       for (j = 0; j < col1; j++) {          cout<<"Nhap phan tu matrix1["<> matrix1[i][j];       }    }    //Nhap cac phan tu cua ma tran 2    cout<<"\nNhap ma tran 2\n";    for (i = 0; i < row2; i++)       for (j = 0; j < col2; j++) {          cout<<"Nhap phan tu matrix2["<> matrix2[i][j];       }    //cong hai ma tran    for (i = 0; i < row1; i++)       for (j = 0; j < col1; j++) {          matrix3[i][j] = matrix1[i][j] + matrix2[i][j];       }    //Hien thi ma tran ket qua    cout<<"\nKet qua cua phep cong hai ma tran la: \n";    for (i = 0; i < row1; i++) {       for (j = 0; j < col1; j++) {          cout<<"\t"<< matrix3[i][j];       }      cout<

Kết quả thực thi:

  • Nhập kích cỡ không hợp lệ:

hap so hang cua matrix1: 4 Nhap so cot cua matrix1: 4 Nhap so hang cua matrix2: 3 Nhap so cot cua matrix2: 3 Hai ma tran khong cung kich co!

  • Nhập kích cỡ hợp lệ

Nhap so luong phan tu cua mang: 7 Nhap vao phan tu a[0]: 4 Nhap vao phan tu a[1]: 3 Nhap vao phan tu a[2]: 5 Nhap vao phan tu a[3]: 3 Nhap vao phan tu a[4]: 2 Nhap vao phan tu a[5]: 4 Nhap vao phan tu a[6]: 6 Tong cac phan tu cua mang: 27 Tich cac phan tu cua mang: 8640 Gia tri trung binh cac phan tu cua mang: 3

0

6. Tính định thức của ma trận

Đề bài: Nhập vào kích thước và giá trị các phần tử của ma trận. In ra màn hình định thức của ma trận vừa nhập.

Đáp án:

Nhap so luong phan tu cua mang: 7 Nhap vao phan tu a[0]: 4 Nhap vao phan tu a[1]: 3 Nhap vao phan tu a[2]: 5 Nhap vao phan tu a[3]: 3 Nhap vao phan tu a[4]: 2 Nhap vao phan tu a[5]: 4 Nhap vao phan tu a[6]: 6 Tong cac phan tu cua mang: 27 Tich cac phan tu cua mang: 8640 Gia tri trung binh cac phan tu cua mang: 3

1

Kết quả thực thi:

Nhap so luong phan tu cua mang: 7 Nhap vao phan tu a[0]: 4 Nhap vao phan tu a[1]: 3 Nhap vao phan tu a[2]: 5 Nhap vao phan tu a[3]: 3 Nhap vao phan tu a[4]: 2 Nhap vao phan tu a[5]: 4 Nhap vao phan tu a[6]: 6 Tong cac phan tu cua mang: 27 Tich cac phan tu cua mang: 8640 Gia tri trung binh cac phan tu cua mang: 3

2

Hy vọng những bài tập này sẽ giúp các bạn thành thạo hơn về sử dụng mảng trong C++! Nếu thấy bài viết này của Isinhvien hay và bổ ích thì hãy chia sẻ nó đến với bạn bè của mình để ủng hộ cho Isinhvien và giúp Isinhvien ngày càng phát triển hơn nhé! Chúc các bạn thành công!