Video hướng dẫn bài tập lập trình căn bản - Phần 4

Ấn like và +1 để giúp blog được duy trì và phát triển nhé bạn

BÀI TẬP ĐƯỢC LẤY TỪ QUYỂN SÁCH KỸ THUẬT LẬP TRÌNH C 
CỦA THẦY DƯƠNG THIÊN TỨ



Đề bài: Viết chương trình nhập ngày, tháng, năm. Kiểm tra xem ngày và tháng, năm nhập có hợp lệ hay không. Nếu hợp lệ cho biết đó là ngày thứ mấy trong tuần. Sử dụng công thức lịch Gregorian (dương lịch) để xác định ngày, tháng, năm hợp lệ và công thức Zeller để tính thứ trong tuần.

Video: mình đã hướng dẫn và giải thích cụ thể về 2 công thức trên trong video này


Mã lệnh:

#include <stdio.h>

int
main(){
int
day,month,year;
printf("Moi nhap ngay thang nam: ");
scanf("%d%d%d",&day,&month,&year);
if
(year < 1582){
printf("Nam khong hop le! Nam bat dau tu 1582");
return
1;
}

if
(month< 1 || month>12){
printf("Thang khong hop le");
return
2;
}

int
top = 31;
switch
(month){

case
4: case 6: case 9: case 11:
top = 30;
break
;
case
2:
top = ( (year%4==0 && year%100 != 0) || (year % 400 ==0)) ? 29: 28;
break
;
}

if
(day<1 || day > top){
printf("Ngay khong hop le");
return
3;
}

printf("Ngay Hop le\n");
int
d = day;
int
a = (14-month)/12;
int
y = year - a;
int
m = month+12*a-2;
int
dow = (d+y+y/4-y/100+y/400+(31*m)/12)%7;
if
(dow == 0)
printf("Chu nhat");
else

printf("Thu %d",dow+1);

return
0;
}
Mã nguồn: dành cho các bạn không thích gõ mã lệnh, Click here

Bài liên quan

Bài liên quan