-
题目描述:
-
输入年、月、日,计算该天是本年的第几天。
-
输入:
-
包括三个整数年(1<=Y<=3000)、月(1<=M<=12)、日(1<=D<=31)。
-
输出:
-
输入可能有多组测试数据,对于每一组测试数据,输出一个整数,代表Input中的年、月、日对应本年的第几天。
-
样例输入:
-
1990 9 20 2000 5 1
-
样例输出:
-
263 122
AC
#include <stdio.h>
int main(){
int stdMonth[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int year,month,day;
int days=0;
int i;
while(scanf("%d",&year) !=EOF){
if(year==0) return 0;
scanf("%d %d",&month,&day) ;
//isLeapYear
if(year%4==0 && year%100!=0 || year%400==0) stdMonth[1]=29;
for(i=0;i<month-1;i++){
days+=stdMonth[i];
}
days+=day;
printf("%d\n",days);
days=0;
stdMonth[1]=28;
}
return 0;
}
/**************************************************************
Problem: 1070
User: 人气呆毛选手
Language: C
Result: Accepted
Time:10 ms
Memory:912 kb
****************************************************************/
是的,你绝对想不到我对于这道题的复杂心理过程。
还是那句话说的好,就算这题再简单,就算你心里给自己打了个101分,还是不如一个AC让人心安。
在判断是闰年之后,2月就变成了29天,但之后计算完一个数据后,你得把二月的天数恢复回去啊,ばっか!