Kiểm tra năm nhuận trong C / C++
Trong bài viết này, codehow sẽ hướng dẫn các bạn kiểm tra năm nhuận trong C / C++. Đây là dạng bài tập khi bắt đầu học bất kì ngôn ngữ lập trình nào đều gặp cả.
Để hiểu được chương trình, các bạn cần có kiến thức về câu lệnh if else trong C / C++, hãy tìm hiểu nó trước khi bắt đầu chương trình nhé.
Như thế nào được gọi là một năm nhuận, mình có quy luật như sau:
- Năm nhuận là năm chia hết cho 400.
- Năm nhuận là năm chia hết cho 4 nhưng không chia hết cho 100.
Kết hợp hai điều kiện trên, ta có thể xác định được một năm bất kì có phải năm nhuận hay không.
Ví dụ: Mình có năm 2020 là năm nhuận vì nó chia hết cho 4 nhưng không chia hết cho 100.
Vậy làm thế nào để viết chương trình kiểm tra năm nhuận trong C / C++ thì hãy bắt đầu cùng với mình thôi nào.
Kiểm tra năm nhuận trong C / C++
Trong chương trình này, mình sẽ thực hiện chương trình yêu cầu người dùng nhập vào một năm bất kì lớn hơn 0. Kiểm tra có phải năm nhuận hay không rồi hiển thị thông báo ra màn hình.
Giải thuật:
if(year % 4 == 0) { if( year % 100 == 0) { if ( year % 400 == 0) cout<<year<<" là năm nhuận"; else cout<<year<<" không phải là năm nhuận"; } else cout<<year<<" là năm nhuận"; } else cout<<year<<" không phải là năm nhuận";
Đầu tiên chúng ta sẽ kiểm tra xem year có chia hết cho 4 hay không, nếu không chia hết thì không phải năm nhuận. Ngược lại sẽ kiểm tra điều kiện tiếp theo là chia hết cho 100 hay không. Nếu chia hết là năm nhuận ngược lại không phải là năm nhuận.
Chương trình C:
#include <stdio.h> int main(void) { int y; printf("Nhập vào năm bạn cần kiểm tra: "); scanf("%d", &y); if(y % 4 == 0) { if( y % 100 == 0) { if ( y % 400 == 0) printf("%d là năm nhuận", y); else printf("%d không phải là năm nhuận", y); } else printf("%d là năm nhuận", y); } else printf("%d không phải là năm nhuận", y); 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 y; cout<<"Nhập vào năm bạn cần kiểm tra: "; cin>>y; if(y % 4 == 0) { if( y % 100 == 0) { if ( y % 400 == 0) cout<<y<<" là năm nhuận"; else cout<<y<<" không phải là năm nhuận"; } else cout<<y<<" là năm nhuận"; } else cout<<y<<" không phải là năm nhuận"; cout<<"\n-----------------------------------\n"; cout<<"Chương trình này được đăng tại codehow.net"; }
Kết quả:
Hiển thị năm nhuận trong một phạm vi nhất định trong C / C++
Trong chương trình này, mình sẽ thực hiện một chương trình hiển thị năm nhuận trong một phạm vi được nhập bởi người dùng. Chương trình sẽ yêu cầu người dùng nhập vào năm bắt đầu và năm kết thúc, sau đó in ra các năm nhuận trong khoảng đó.
Gợi ý:
- Viết hàm kiểm hiển thị các năm nhuận với hai tham số truyền vào là năm bắt đầu và năm kết thúc. Trong hàm sử dụng vòng lặp for lặp từ năm bắt đầu đến năm kết thúc, kết hợp với thuật toán kiểm tra năm nhuận để in các năm nhuận ra màn hình.
- Ở hàm main() yêu cầu người dùng nhập vào hai giá trị năm bắt đầu và năm kết thúc. Thực hiện gọi hàm và truyền hai tham số cho hàm là hai giá trị được nhập bởi người dùng.
Chương trình C:
#include <stdio.h> #include <stdbool.h> void laNamNhuan(int end, int start){ printf("Các năm nhuận là: "); for(int i = start; i <= end; i++){ if(i % 4 == 0) { if( i % 100 == 0) { if ( i % 400 == 0) printf("%d ", i); } else printf("%d ", i); } } } int main(void) { int end, start; printf("Nhập vào năm bắt đầu: "); scanf("%d", &start); printf("Nhập vào năm kết thúc: "); scanf("%d", &end); laNamNhuan(end, start); printf("\n-------------------------\n"); printf("Chương trình này được đăng tại codehow.net"); return 0; }
Chương trình C++:
#include <iostream> using namespace std; void laNamNhuan(int end, int start){ cout<<"Các năm nhuận là: "; for(int i = start; i <= end; i++){ if(i % 4 == 0) { if( i % 100 == 0) { if ( i % 400 == 0) cout<<i<<" "; } else cout<<i<<" "; } } } int main() { int end, start; cout<<"Nhập vào năm bắt đầu: "; cin>>start; cout<<"Nhập vào năm kết thúc: "; cin>>end; laNamNhuan(end, start); cout<<"\n-----------------------------------\n"; cout<<"Chương trình này được đăng tại codehow.net"; }
Kết quả:
Như vậy là chúng ta đã cùng nhau tìm hiểu về cách kiểm tra năm nhuận trong C / C++. Các bạn có thể xem các dạng bài tập khác nhau tại serreis bài tập C / C++, cảm ơn các bạn nhiều nhé !!!