/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
int y,m,d;//年、月、日
int cr,ds=0,i;//cr:判断是否为闰年的变量,是为1,否为0;ds:天数的总和;i是一个循环变量
char run[12] = {31,29,31,30,31,30,31,31,30,31,30,31};//闰年的每月的天数
char ping[12] = {31,28,31,30,31,30,31,31,30,31,30,31};//平年的每月的天数
printf("请输入你要查询的年份:\n");
scanf("%d",&y);//输入年份
cr = y%4==0&&y%100!=0||y%400==0;//判断是否为闰年,是为1,否为0
do{
printf("请输入月份:\n");
scanf("%d",&m);//输入月份
if(m<0||m>12){//判断有没输入错误
printf("输入有误,请重新输入!\n");}
}while(m<0||m>12);//有错重新输入
do{
printf("请输入日期:\n");
scanf("%d",&d);//输入日期
if(d>31){//判断有没有输入大于31号的
printf("输入有误,请重新输入!(一个月最多有31天)\n");
}else if(d>run[m-1]&&cr==1)//判断闰年某天数是否在该月的最多天数内
{
printf("%d月最多有%d天,请重新输入!\n",m,run[m-1]);
}else if(d>ping[m-1]&&cr==0)//判断平年某天数是否在该月的最多天数内
{
printf("%d月最多有%d天,请重新输入!\n",m,ping[m-1]);
}
}while((d>run[m-1]&&cr==1)||(d>ping[m-1]&&cr==0));
if(cr == 1){//计算闰年的某天在该年的总天数
for(i=0;i1;i++){
ds += run[i];
}
}else {//计算平年的某天在该年的总天数
for(i=0;i1;i++){
ds += ping[i];
}
ds += d;//加上当月的天数
printf("%d年%d月%d日是该年的第%d天!",y,m,d,ds);
}
}