思路:判断闰年;判断输入的日期是否合法
//根据年月日判断是该年的第几天
//闰年:被4整除 不被100整除或能被400整除
#include<stdio.h>
int main() {
int year,month,day,num,k,m;
scanf("%d%d%d",&year,&month,&day);
//判断闰年
if((year%4==0&&year%100!=0)||(year%400==0)) k=1;
else k=0;
if(month==1&&(day>0&&day<32)) {
num=day;
} else if(month==2&&(day>0&&day<30)) {
if(k==1) { //闰年
num=31+day;
} else { //非闰年
if(day==29) {
printf("%d年非闰年无2月29日,错误日期",year);
return 0;
} else {
num=31+day;
}
}
} else if(month==3&&(day>0&&day<32)) {
num=59+day;
}else if(month==4&&(day>0&&day<31)) {
num=90+day;
}else if(month==5&&(day>0&&day<32)) {
num=120+day;
}else if(month==6&&(day>0&&day<31)) {
num=151+day;
}else if(month==7&&(day>0&&day<32)) {
num=181+day;
}else if(month==8&&(day>0&&day<32)) {
num=212+day;
}else if(month==9&&(day>0&&day<31)) {
num=243+day;
}else if(month==10&&(day>0&&day<32)) {
num=273+day;
}else if(month==11&&(day>0&&day<31)) {
num=304+day;
}else if(month==12&&(day>0&&day<32)) {
num=334+day;
}
else{
printf("错误日期");
return 0;
}
if(k==1&&(month>2&&month<13)) num++;//闰年2月以后的日期计数都加1
printf("%d年%d月%d日是第%d天",year,month,day,num);
return 0;
}