STARTING
CONTROL STATEMENT
FUNCTION
ARRAY & POINTER
OOP
STL
ITERATORS
OTHER FEATURES
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

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.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

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.

Bài viết này được đăng tại [free tuts .net]

#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.

Cùng chuyên mục:

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý ngày tháng (datetime.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số thực (float.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý số nguyên lớn (bigint.h) trong C/C++

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý thời gian (time.h) trong C

Các hàm xử lý chuỗi (string.h) trong C/C++

Các hàm xử lý chuỗi (string.h) trong C/C++

Thread Pools và Parallel Algorithms trong C++

Thread Pools và Parallel Algorithms trong C++

Tạo và quản lý các Multithreading trong C++

Tạo và quản lý các Multithreading trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Xử lý ngoại lệ khi làm việc với Memory Allocation trong C++

Try, Catch, và Throw của Exception Handling trong C++

Try, Catch, và Throw của Exception Handling trong C++

Cách sử dụng Lambda Expressions trong C++

Cách sử dụng Lambda Expressions trong C++

Sử dụng weak_ptr trong C++

Sử dụng weak_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng shared_ptr trong C++

Sử dụng unique_ptr trong C++

Sử dụng unique_ptr trong C++

Tổng quan về Smart Pointers trong C++

Tổng quan về Smart Pointers trong C++

Sử dụng Iterators trong STL của C++

Sử dụng Iterators trong STL của C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng Vector trong C++

[Iterator] Sử dụng trong List trong C++

[Iterator] Sử dụng trong List trong C++

[STL] Sử dụng Vector trong C++

[STL] Sử dụng Vector trong C++

Tổng quan về Iterators trong C++

Tổng quan về Iterators trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

[STL] Các hàm thường dùng của lớp Vector trong C++

Top