定义一个12元素的int型数组存放1月份至12月份每个月的天数;
根据输入的年份判断是否为闰年,对上述数组中2月份的天数进行调整;
判断年份大于0、月份大于0小于13、日期大于0小于等于月份对应的天数为正确输入,否则为错误输入。
代码如下:
#include "
stdio.h"
int main(int argc,char *argv[]){
int y,m,d,md[12]={31,28,31,30,31,30,31,31,30,31,30,31};//md是每月天数数组
printf("Please enter the year, month, day(separated by ' ')...\n");
scanf("%d%d%d",&y,&m,&d);
md[1] = y%4==0 && y%100 || y%400==0 ? 29 : 28;//闰年调整
if(y>0 && m>0 && m<13 && d>0 && d<=md[m-1])//判断输入是否正确
printf("Your input is correct!\n");//正确输出
else
printf("Error...\n");//错误输出
return 0;
}
运行样例如下: