Tìm số ngày của một tháng trong C

1. Bài tập tìm số ngày của tháng trong C

Bài tập cơ bản này ta có thể có hướng giải quyết là sử dụng cấu trúc switch case trong ngôn ngữ lập trình C.

Đầu vào sẽ là một biến nguyên dương Thang và Nam,  yêu cầu của bài toán là tìm số ngày của tháng trong năm đó.

2. Lời giải

Đầu tiên chúng ta cần biết : tháng 1, 3, 5, 7, 8, 10, 12 là những tháng có 31 ngày; tháng 2 có 28 ngày nếu là năm nhuận thì tháng 2 sẽ có 29 ngày(những năm tròn thế kỷ (những năm có 2 số cuối là số 0) thì các bạn lấy số năm chia cho 400, nếu chia hết thì năm đó là năm có nhuận (hoặc 2 số đầu trong năm chia hết cho 4)); tháng 4, 6, 9, 11 là những tháng có 30 ngày.

Để giải được bài tập tìm số ngày của một tháng trong C bạn phải có kiến thức về toán học cơ bản, có kiến thức về nhập xuất cơ bản và cách sử dụng cấu trúc switch case trong lập trình C cơ bản.

Các bước thực hiện bài toán như sau:

Bước 1: Khai báo biến int Thang, Nam đùng để gán giá trị của tháng và năm.

Bước 2: Nhập dữ liệu cho Thang và Nam; nếu Nam < 0 yêu càu nhập lại Nam; nếu Thang < 1 || Thang > 12 yêu cầu nhập lại Thang.

Bước 3: Sử dụng switch truyền vào biến Thang với các case 1, 3, 5, 7, 8, 10, 12 sẽ có 31 ngày; các case 4, 6, 9 , 11 sẽ có 30 ngày; case 2 ta sử dụng điều kiện if nếu Nam % 4 = 0 && Nam % 100 != 0) || Nam % 400 = 0 thỏa mãn thì có 29 ngày còn ngược lại có 28 ngày.

Chương trình giải bài tập tìm số ngày của một tháng trong năm trong C như sau :

#include<stdio.h>
int main()
{
    // khai bao bien Thang, Nam
    int Thang, Nam;
    // Nhap du lieu cua Thang
    do
    {
        printf("\nNhap vao thang: ");
        scanf("%d", &Thang);
        if (Thang < 1 || Thang > 12)// 1 nam co 12 thang
            printf("\nDu lieu thang khong hop le. Xin kiem tra lai!");
    }while(Thang < 1 || Thang > 12);
    // Nhap du lieu cua Nam
    do
    {
        printf("\nNhap vao nam: ");
        scanf("%d", &Nam);
        if(Nam < 0 )
        {
            printf("\nDu lieu nam khong hop le. Xin kiem tra lai!");
        }
    }while(Nam < 0);//neu Nam < 0 yeu cau nhap lai
    switch(Thang)
    {
    // thang 1, 3, 5, 6, 8, 10 , 12 có 31 ngay
    case 1: case 3: case 5: case 7: case 8: case 10: case 12:
        printf("\nCo 31 ngay");
        break;
    // thang 4, 6, 9, 11 co 30 ngay
    case 4: case 6: case 9 : case 11:
        printf("\nCo 30 ngay");
        break;
    // thang 2 có 28 ngay neu nam nhuan co 29 ngay
    case 2:
        if((Nam % 4 == 0 && Nam % 100 != 0) || (Nam % 400 == 0))//kiem tra nam nhuan
        {
            printf("\nCo 29 ngay !");
        }
        else
        {
            printf("\nCo 28 ngay !");
        }
    }
}

Ví dụ tôi nhập Thang = 2 và Nam = 2016

Kết quả:

Nhap vao thang: 2

Nhap vao nam: 2016

Co 29 ngay !

3. Tổng kết

Để thực hiện giải bài tập tìm số ngày của một tháng trong năm trong C bạn đọc cần phải có kiến thức cơ bản về ngôn ngữ lập trình C, bạn cần nắm vững cách nhập xuất căn bản và các cách sử dụng cấu trúc switch case trong C và các phép toán học cơ bản.

 

Tham Khảo Thêm
Bài Viết Mới
Laptrinhtudau.com