@计蒜客判断日期合法性答案
在百度知道的错误上的答案修改为正确的,正确通过测试。 如果要搭计蒜客的提 注销 printf(“Please Input Data Like 1992-04-03:\n”);
把 printf(“Please Input Right Number!\n”); 该为no
#include <stdio.h>
void yes();
void no();
int main(void)
{
int year,month,day;
printf(“Please Input Data Like 1992-04-03:\n”);
scanf("%d-%d-%d",&year,&month,&day);
if(year < 0 || year > 5000 || day > 31 || day < 0 || month > 12 || month < 0 )
{
printf(“Please Input Right Number!\n”);
return -1;
}
if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
{
if(day > 0 && day <= 31)
{
yes();
}
else
{
no();
}
}
else if(month == 2)
{
//if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0 && year % 100 == 0)
if((year % 4 == 0 && year % 100 != 0) || year % 400 == 0 )
{
if(day > 0 && day <= 29)
{
yes();
}
else
{
no();
}
}
else
{
if(day > 0 && day <= 28)
{
yes();
}
else
{
no();
}
}
}
else
{
if(day > 0 && day < 30)
{
yes();
}
else
{
no();
}
}
fflush(stdin);
getchar();
return 0;
}
void yes()
{
printf(“YES\n”);
}
void no()
{
printf(“NO\n”);
}