代码实现:
#include<cstdio>
int leapyear(int y);
int main(){
int y,m,d;
printf("请输入年,月,日:\n");
scanf("%d,%d,%d",&y,&m,&d);
//判断输入格式是否合法
while(1){
if(m<1||m>12||d<1||d>31){
printf("输入错误,请重新输入:\n");
scanf("%d,%d,%d",&y,&m,&d);
}
else
break;
}
//设置每月天数,一月的日期直接等于day,所以可以设置为0
int a[]={0,28,31,30,31,30,31,31,30,31,30,31};
int i,sum = 0;
//一月
if(m==1)
sum = d;
//二月
else if(m==2)
sum = d+31;
//三月及以上
else{
for(i=0;i<m;i++)
sum = sum+a[i]; //本月之前的天数
//加上本月的天数
sum = sum+d;
//判断是否是闰年
if(leapyear(y)){
printf("%d是闰年\n",y);
sum = sum+1;
}
}
printf("今天是第%d天",sum);
}
//调用函数用于判断闰年
int leapyear(int y){
return ((y%4==0&&y%100!=0||y%400==0)?1:0);
}