Bài tập vòng lặp for trong C++ có lời giải

Trong bài này mình sẽ tổng hợp các bài tập vòng lặp for trong C++ để giúp các bạn rèn luyện xử lý vòng lặp for, đây là những bài tập có lời giải do mình biên soạn và có tham khảo trên internet.

Vòng lặp for C++ rất quan trọng, nó được sử dụng rất nhiều khi xử lý mảng, vì vậy bạn phải nắm vững cấu trúc của nó, cũng như phương pháp áp dụng vào bài toán cụ thể.

1. Bài tập vòng lặp for trong C++ thứ nhất

Đầu tiên ta nên làm những bài cực kì đơn giản trước.

Bài 01: Viết chương trình in ra các số từ 1 đến 100.

#include <iostream>
using namespace std;

int main()
{
    for (int i = 1; i <= 100; i++){
    	cout << i << endl;
    }
}

Bài 02: Cũng là bài tập trên nhưng tăng độ khó lên một xíu. Hãy in ra các số từ 1, 3, 5, 7, 9 … 99 bằng vòng lặp for.

Với bài này thì ta chỉ cần lặp từ 1 đến 99 với bước nhảy bằng 2.

#include <iostream>
using namespace std;

int main()
{
	// Chu y buoc nhay i += 2
    for (int i = 1; i <= 99; i+= 2){
    	cout << i << endl;
    }
}

Hoặc bạn sử dụng bước nhảy 1, nhưng trong thân vòng lặp bạn phải tăng i lên 1 nữa nhé.

#include <iostream>
using namespace std;

int main()
{
    for (int i = 1; i <= 99; i++){
    	cout << i << endl;
    	i++; // Tang i len 1
    }
}

2. Bài tập vòng lặp for C++ thứ hai

Bài 01: Viết chương trình kiểm tra một số có phải là số nguyên tố hay không?

Chúng ta đã làm bài này khá nhiều rồi, nhưng hôm nay mình cũng viết lại với một cách giải khác.

Số nguyên tố là số lớn hơn 1 và chỉ chia hết cho 1 và chính nó. Số 2 là SNT chẵn duy nhất.

#include <iostream>
using namespace std;

int main()
{
    int n;
    bool flag = true; // Bien dung check SNT 

    cout << "Nhap so can kiem tra: ";
    cin >> n;

    // Neu n < 2 thi khong phai la SNT
    if (n < 2){
        flag = false;
    }
    // Neu n = 2 thi do la SNT
    else if (n == 2){
        flag = true;
    }
    // Neu n la so chan thi khong phai la SNT
    else if (n % 2 == 0){
        flag = false;
    }
    else{
        // Lap qua cac so 3, 5, 7 ... (n - 1)
        // Neu n chia het cho bat ki so nao thi 
        // do khong phai la SNT
        for (int i = 3; i < n; i += 2){
            if (n % i == 0){
                flag = false;
                break;
            }
        }
    }

    if (flag){
        cout << n << " la SNT" << endl;
    }
    else {
        cout << n << " khong phai la SNT" << endl;
    }
}

Bài 02: Áp dụng thuật toán trên hãy viết ứng dụng in ra các số nguyên tố nằm trong khoảng từ 1 đến 100.

Bài này khá đơn giản, ta chỉ cần đặt đoạn code trên nằm trong vòng lặp for là được. Lúc này số cần kiểm tra chính là số trong mỗi lần lặp.

#include <iostream>
using namespace std;

int main()
{
    // Bien dung check SNT
    bool flag;  

    for (int i = 1; i <= 100; i++){

        // Khoi tao gia tri ban dau cho flag
        flag = true;

        // Neu i < 2 thi khong phai la SNT
        if (i < 2){
            flag = false;
        }
        // Neu n = 2 thi do la SNT
        else if (i == 2){
            flag = true;
        }
        // Neu n la so chan thi khong phai la SNT
        else if (i % 2 == 0){
            flag = false;
        }
        else{
            // Lap qua cac so 3, 5, 7 ... (n - 1)
            // Neu n chia het cho bat ki so nao thi 
            // do khong phai la SNT
            for (int j = 3; j < i; j += 2){
                if (i % j == 0){
                    flag = false;
                    break;
                }
            }
        }

        // neu la SNT thi in ra
        if (flag){
            cout << i << endl;
        }
    }
}

3. Bài tập vòng lặp for trong C++ thứ ba

Đề bài: Hãy viết chương trình tính giai thừa cho một số bất kì.

Để tính giai thừa cho một số n thì ta sử dụng vòng lặp để lặp từ 1 đến n, sau đó kết quả là tích của các số đó.

#include <iostream>
using namespace std;

int main()
{
    int n;
    cout << "Nhap so can tinh giai thua: ";
    cin >> n;
    
    int giaithua = -1;
    
    if (n < 0){
    	cout << "Vui long nhap vao so duong";
    }
    else if (n == 0){
    	giaithua = 1;
    }
    else {
    	for (int i = 1; i <= n; i++){
            giaithua *= i;
	}
    }
    
    if (giaithua != -1){
    	cout << n <<"! = " << giaithua <<endl;
    }
}

4. Bài tập vòng lặp for C++ thứ tư

Trong bài tập này chúng ta sẽ thao tác một chút với mảng nhé.

Đề bài: Hãy viết chương trình cho phép người dùng nhập vào một dãy số gồm 10 chữ số.

Bài này thì ta phải khai báo một mảng gồm 10 phần tử kiểu số nguyên, sau đó dùng vòng lặp để yêu cầu người dùng nhập vào.

#include <iostream>
using namespace std;

int main()
{
    int numbers[10];

    // Nhap du lieu
    for (int i = 0; i < 10; i++){
        cout << "Nhap phan thu thu " << i <<": ";
        cin >> numbers[i];
    }

    // In danh sach ra
    for (int i = 0; i < 10; i++){
        cout  << numbers[i] << ",";
    }
}

Lời kết: Trên là tổng hợp những bài tập vòng lặp for trong C++ đơn giản nhất. Nếu bạn muốn làm nhiều bài tập hơn thì hãy tiếp tục học những bài tiếp theo trong series này nhé, bởi trong bài xử lý mảng chúng ta sẽ sử dụng vòng lặp for rất nhiều.