请你计算出 x 年 y 月 z 日是 x 年的第几天。
请注意闰年对答案的影响。
输入格式
一行三个整数,x,y 和 z。
输出格式
一个整数,表示是第几天。
2016 3 1
输出格式
一个整数,表示是第几天
61
解题思路:判断该年是否为闰年,再计算经历了几个完整的月份,并将这些月份的天数加起来,再加入z值
#include "stdio.h"
int main(){
int x,y,z,a,i=0,j=0;
scanf("%d%d%d",&x,&y,&z);
if((x%4==0&&x%100!=0)||(x%400==0)){//判断是否为闰年
if(y>1){//判断y是否大于1月
for(a=1;a<y;a++){//判断y有几个整月份
if(a==1||a==3||a==5||a==7||a==8||a==10||a==12)//经历31天的整月份
i++;
}
for(a=1;a<y;a++)
if(a==4||a==6||a==9||a==11)//经历30天的整月份
j++;
if(y>2)//如果y大于2月
printf("%d\n",31*i+29+j*30+z);//将闰月的天数加上
else//反之
printf("%d\n",31*i+z);//一月的天数加上z
}
else//小于1月
printf("%d\n",z);
}
else{//不是闰年
if(y>1){
for(a=1;a<y;a++){
if(a==1||a==3||a==5||a==7||a==8||a==10||a==12)
i++;
}
for(a=1;a<y;a++)
if(a==4||a==6||a==9||a==11)
j++;
if(y>2)
printf("%d\n",31*i+28+j*30+z);
else
printf("%d\n",31*i+z);
}
else
printf("%d\n",z);
}
return 0;
}