修改中后在输入日子后会一直提示数据错误,但我实在是找不出原因,请大神指点?#include <stdio.h>
#include <conio.h>
int main()
{
int day,month,year,sum,leap;
printf("\nplease input year:");
scanf("%d",&year);
for(int i=1;;i++){
printf("\nplease input month:");
scanf("%d",&month);
if(month<=12)
break;
else
printf("Deta error");
}
if(year%400==0||(year%4==0&&year%100!=0)) /*判断是不是闰年*/
leap=1;
else
leap=0;
for(int i=1;;i++){
printf("\nplease input day:");
scanf("%d",&day);
if(month==2&&leap==1&&day<29)
break;
else
if((month==1||month==3||month==5||month==7||month==8||month==10||month==12)&&day<=31)
break;
else
if((month==4||month==6||month==9||month==11)&&day<=30)
break;
else
printf("Deta error");
}
//printf("\nplease input month:");
//scanf("%d",&month);
printf("\nplease input day:");
scanf("%d",&day);
switch(month) /*先计算某月以前月份的总天数*/
{
case 1:sum=0;break;
case 2:sum=31;break;
case 3:sum=59;break;
case 4:sum=90;break;
case 5:sum=120;break;
case 6:sum=151;break;
case 7:sum=181;break;
case 8:sum=212;break;
case 9:sum=243;break;
case 10:sum=273;break;
case 11:sum=304;break;
case 12:sum=334;break;
default:printf("data error");break;
}
sum=sum+day; /*再加上某天的天数*/
//if(year%400==0||(year%4==0&&year%100!=0)) /*判断是不是闰年*/
// leap=1;
//else
// leap=0;
if(leap==1&&month>2) /*如果是闰年且月份大于2,总天数应该加一天*/
sum++;
printf("\nIt is the %dth day.",sum);
getch();
}
|
|