LATEST

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ả:

bai11 02 png

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ả:

bai11 01 png

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ả:

bai11 03 png

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é !!!

Cùng chuyên mục:

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Danh sách liên kết (Linked List) là gì? Các loại danh sách liên kết

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Sử dụng đệ quy để giải bài toán tháp Hà Nội

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy tương hỗ (Mutual Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy lồng (Nested Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy đa tuyến (Exponential Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy nhị phân (Binary Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy đuôi (Tail Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Đệ quy tuyến tính (Linear Recursion) trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Hàm đệ quy là gì? Các loại hàm đệ quy trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp Quick Sort trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp trộn (Merge Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chọn (Selection Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp chèn (Insertion Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán sắp xếp nổi bọt (Bubble Sort) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nội suy (Interpolation Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm nhị phần (Binary Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán tìm kiếm tuyến tính (Linear Search) trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra năm nhuận trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán kiểm tra số chẵn lẻ trong C / C++

Thuật toán tính lũy thừa trong C / C++

Thuật toán tính lũy thừa trong C / C++

Top