Đề : Nhập vào ngày tháng năm, kiểm tra xem hôm trước là ngày nào? Vd: 5/3/1996 thì hôm trước là ngày 4/3/1996.
Bài này nhập mấy ngày bình thường thì kết quả đúng. Nhưng nhập ngày 1/2/1996 thì nó in ra ngày 29/1/1996 còn nhập 1/3/1996 thi in ra 31/2/1996. Ai sửa giúp em vs.
#include <stdio.h>
int main(int argc, char *argv[])
{
int ngay,thang,nam;
int nhuan;
int sntt;
printf("Nhap vao ngay thang nam: ");
scanf("%d%d%d",&ngay,&thang,&nam);
if(nam%400==0 || (nam%4==0 && nam%100!=0))
nhuan=1;
else
nhuan=0;
switch(thang)
{
case 1: case 3: case 5: case 7: case 8: case 10: case 12: sntt=31;break;
case 4: case 6: case 9: case 11: sntt=30;break;
case 2:{
if(nhuan=1)
sntt=29;
else
sntt=28;
}
}
if(ngay>0 && ngay<=sntt && thang>0 && thang<13 && nam>0)
{
ngay=ngay-1;
thang=thang;
nam=nam;
if(ngay<=0)
{
ngay=sntt;
thang=thang-1;
}
if(thang<=0)
{
thang=12;
nam=nam-1;
}
printf("Hom qua la ngay: %02d:%02d:%02d%",ngay,thang,nam);
}
else
printf("Nhap ngay thang nam khong hop le\n");
return 0;
}
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?