Bài tập vòng lặp for trong C / C++
Trong bài viết này, codehow sẽ thực hiện các bài tập vòng lặp for trong C / C++. Sau khi chúng ta đã học phần lý thuyết, để có thể nhớ được lâu thì việc tốt nhất là làm các bài tập liên quan đến kiến thức đó.
Mình sẽ thực hiện các bài tập có sử dụng vòng lặp for trong C / C++ với hai ngôn ngữ khác nhau là C và C++. Các bạn cùng mình bắt đầu thôi nhé !!!
Bài tập 1 vòng lặp for trong C++
Đề bài: Viết chương trình yêu cầu người dùng nhập vào một số, sử dụng vòng lặp for trong C / C++ để in ra các số lẻ từ 1 đến số đó. Điều kiện nhập n phải lớn hơn 2.
Gợi ý:
- Khai báo biến a và yêu cầu người dùng nhập vào số này.
- Sử dụng vòng lặp for lặp từ 1 đến a với bước nhảy là i += 2 (bước nhảy hai đơn vị). Vì bắt đầu từ số 1 (là số lẻ) vậy nên cứ cộng thêm 2 ta được thêm một số lẻ.
- Hiển thị các số lẻ đó ra màn hình cho người dùng.
Chương trình C:
#include <stdio.h> int main(void) { int n; do{ printf("Vui lòng nhập số lớn hơn 2: "); scanf("%d", &n); }while(n < 2); printf("Các số lẽ từ 1 đến %d là: ",n); for(int i = 1; i <= n; i += 2){ printf("%d ",i); } printf("\n------------------------------\n"); printf("Chương trình này được đăng tại codehow.net"); return 0; }
Kết quả:
Chương trình C++:
#include <iostream> using namespace std; int main() { int n; do{ cout<<"Vui lòng nhập số lớn hơn 2: "; cin>>n; }while(n < 2); cout<<"Các số lẽ từ 1 đến "<<n<<" là: "; for(int i = 1; i <= n; i += 2){ cout<<i<<" "; } cout<<"\n------------------------------\n"; cout<<"Chương trình này được đăng tại codehow.net"; return 0; }
Kết quả:
Bài tập 2 vòng lặp for trong C++
Đề bài: Viết chương trình in ra bảng cửu chương, sử dụng vòng lặp for trong C / C++ để yêu cầu người dùng nhập vào bảng cửu chương cần in. Điều kiện bảng cửu chương là một số dương (1, 2, 3, ...), nếu là số âm thì yêu cầu nhập lại.
Gợi ý:
- Khai báo biến n và yêu cầu người dùng nhập vào một số. Sử dụng vòng lặp do...while để tạo điều kiện nhập số n lớn hơn 0, nếu bé hơn hoặc bằng 0 thì yêu cầu nhập lại.
- Sử dụng vòng lặp for lặp từ 1 đến 9, với mỗi lần lặp như vậy ta thực hiện một phép tính của bảng cửu chương.
- Hiển thị bảng cửu chương ra màn hình.
Chương trình C:
#include <stdio.h> int main(void) { int n; do{ printf("Vui lòng nhập bảng cửu chương lớn hơn 0: "); scanf("%d", &n); }while(n <= 0); printf("Bảng cửu chương %d: \n",n); for(int i = 1; i <= 9; i++){ printf("%d x %d = %d\n", n, i, n * i); } printf("\n------------------------------\n"); printf("Chương trình này được đăng tại codehow.net"); return 0; }
Kết quả:
Chương trình C++:
#include <iostream> using namespace std; int main() { int n; do{ cout<<"Vui lòng nhập bảng cửu chương lớn hơn 0: "; cin>>n; }while(n <= 0); cout<<"Bảng cửu chương "<<n<<": "<<endl; for(int i = 1; i <= 9; i++){ cout<< n <<" x "<< i <<" = " << n * i<<endl; } cout<<"\n------------------------------\n"; cout<<"Chương trình này được đăng tại codehow.net"; return 0; }
Kết quả:
Bài tập 3 vòng lặp for trong C++
Đề bài: Viết chương trình yêu cầu người dùng nhập vào một số. Sử dụng vòng lặp for trong C / C++ để kiểm tra và in ra các số nguyên tố trong dãy từ 1 đến số đó. Điều kiện số được nhập phải lớn hơn 2, nếu không sẽ yêu cầu nhập lại.
Gợi ý:
- Yêu cầu người dùng nhập vào một số n, sử dụng vòng lặp do...while để tạo điều kiện nhập cho n phải lớn hơn 1.
- Vòng lặp for thứ nhất lặp từ i = 1 đến n.
- Nếu i < 2 thì không phải số nguyên tố.
- Nếu i = 2 thì đây là số nguyên tố.
- Nếu i chia hết cho hai thì không phải số nguyên tố.
- Sử dụng vòng lặp for lặp từ 3 đến n - 1, nếu i chia hết cho số nào thì đó không phải là số nguyên tố.
- Hiển thị các số nguyên tố ra màn hình.
Chương trình C:
#include <stdio.h> #include <stdbool.h> int main(void) { int n; bool flag; do{ printf("Nhập vào một số n lớn hơn 2: "); scanf("%d", &n); }while(n <= 2); printf("Các số nguyên tố từ 1 đến %d là: \n", n); for (int i = 1; i <= n; i++){ //KHởi tạo giá trị ban đầu cho biến flag flag = true; // Nêu i < 2 thì không phải là số nguyên tố if (i < 2){ flag = false; } // Nếu i = 2 thì đó là số nguyên tố else if (i == 2){ flag = true; } // Nếu i chia hết cho 2 thì không phải số nguyên tố else if (i % 2 == 0){ flag = false; } else{ //Lặp các số từ 3 đến n - 1, nếu i chia hết cho số nào thì không phải số nguyên tố for (int j = 3; j < i; j += 2){ if (i % j == 0){ flag = false; break; } } } //In số nguyên tố ra màn hình if (flag){ printf("%d\n",i); } } printf("\n------------------------------\n"); printf("Chương trình này được đăng tại codehow.net"); return 0; }
Kết quả:
Chương trình C++:
#include <iostream> using namespace std; int main() { int n; bool flag; do{ cout<<"Nhập vào một số n lớn hơn 2: "; cin>>n; }while(n <= 2); cout<<"Các số nguyên tố từ 1 đến "<<n<<" là: "<<endl; for (int i = 1; i <= n; i++){ //KHởi tạo giá trị ban đầu cho biến flag flag = true; // Nêu i < 2 thì không phải là số nguyên tố if (i < 2){ flag = false; } // Nếu i = 2 thì đó là số nguyên tố else if (i == 2){ flag = true; } // Nếu i chia hết cho 2 thì không phải số nguyên tố else if (i % 2 == 0){ flag = false; } else{ //Lặp các số từ 3 đến n - 1, nếu i chia hết cho số nào thì không phải số nguyên tố for (int j = 3; j < i; j += 2){ if (i % j == 0){ flag = false; break; } } } //In số nguyên tố ra màn hình if (flag){ cout << i << endl; } } cout<<"\n------------------------------\n"; cout<<"Chương trình này được đăng tại codehow.net"; return 0; }
Kết quả:
Bài tập 4 vòng lặp for trong C++
Đề bài: Viết chương trình in ra tam giác vuông bằng các dấu *, chiều cao của tam giác do người dùng nhập vào, chiều cao này phải lớn hơn 2, nếu không sẽ yêu cầu nhập lại.
Gợi ý:
Chương trình C:
#include <stdio.h> #include <stdbool.h> int main(void) { int h; do{ printf("Nhập vào chiều cao tam giác: "); scanf("%d", &h); }while(h <= 1); for(int i = 1; i <= h; i++) { //in ký tự * for(int j = 1; j <= i; j++) { printf("* "); } //Xuống dòng tiếp theo printf("\n"); } printf("\n------------------------------\n"); printf("Chương trình này được đăng tại codehow.net"); return 0; }
Kết quả:
Chương trình C++:
#include <iostream> using namespace std; int main() { int h; do{ cout << "Nhập vào chiều cao tam giác: "; cin >> h; }while(h <= 1); for(int i = 1; i <= h; i++) { //in ký tự * for(int j = 1; j <= i; j++) { cout << "* "; } //Xuống dòng tiếp theo cout << endl; } cout<<"\n------------------------------\n"; cout<<"Chương trình này được đăng tại codehow.net"; return 0; }
Kết quả: