void main()
{
int year,month,day;
int yyear,ymonth,yday;
int flag=0;
printf("please input year, month, day:\n");
scanf("%d %d %d",&year,&month,&day);
yyear=year;
ymonth=month;
yday=day;
if(year>9999 || year<1000)
{
printf("Error,year is between 1000 and 9999!\n");
flag=1;
}else
{
if(month>12 || month<1)
{
printf("Error,month is between 1 and 12!\n");
flag=1;
}else
{
if(day>31 || day<1)
{
printf("Error,day is between 1 and 31!\n");
flag=1;
}else
{
if(day<=26 && day >=1)
{
yday=yday+2;
}else if(day==27)
{
if((year%4==0 && year%100!=0)||(year%400==0))
{
yday=yday+2;
}else
{ if(month==2)
{
yday=1;
ymonth=ymonth+1;
}else
{
yday=yday+2;
}
}
}else if(day==28)
{
if(month==2)
{
if((year%4==0 && year%100!=0)||(year%400==0))
{
yday=1;
ymonth=ymonth+1;
}else
{
yday=2;
ymonth=ymonth+1;
}
}else
{
yday=yday+2;
}
}else if(day==29)
{
if(month==2)
{
if((year%4==0 && year%100!=0)||(year%400==0))
{
yday=2;
ymonth=ymonth+1;
}else
{
printf("The day can not be 29 for common year!\n");
flag=1;
}
}else
{
if(month==4 || month==6|| month==9|| month==11)
{
yday=1;
ymonth=ymonth+1;
}else
{
yday=yday+2;
}
}
}else if(day==30)
{
if(month==2)
{
printf("The day is between 1 and 29!\n");
flag=1;
}else
{
if(month==4 || month==6|| month==9|| month==11)
{
yday=2;
ymonth=ymonth+1;
}else
{
yday=1;
ymonth=ymonth+1;
}
}
}else if(day==31)
{
if(month==12)
{
yday=2;
ymonth=1;
yyear=yyear+1;
}else
{
if(month==2 || month==4 || month==6|| month==9|| month==11)
{
printf("Error!\n");
flag=1;
}else
{
yday=2;
ymonth=ymonth+1;
}
}
}
}
}
}
if(flag!=1)
{
printf("The day after tomorrow is:\n");
printf("%d,%d,%d\n",yyear,ymonth,yday);
}
}
谁写的垃圾代码,我都不用知道他最终到底要干什么,只看这逻辑反反复复的,一遍又一遍的,就没有任何看懂的价值
你好好把原题目发出来,我给你压缩到这个代码行数的1/3
这不就是求年月日的下一天嘛。为啥要写的这么复杂