题目【2005】
hint:小学就应学到的问题:判断闰年一般的规律为: 四年一闰,百年不闰,四百年再闰。其简单计算方法:1。能被4整除而不能被100整除。(如2004年就是闰年,1800年不是。)2。能被400整除。(如2000年)
第几天问题:
给定一个日期,输出这个日期是该年的第几天。
Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
Sample Input
1985/1/20
2006/3/12
Sample Output
20
71
我的代码:
#include<stdio.h>
int main()
{
int sum,year,month,day,i;
while(scanf("%d/%d/%d",&year,&month,&day)!=EOF)
{
sum=day;
for(i=1;i<month;i++)
{
switch(i)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
sum+=31;
break;
case 4:
case 6:
case 9:
case 11:
sum+=30;
break;
case 2:
sum+=((year%4==0&&year%100!=0)||(year%400==0))?29:28;
break;
}
}
printf("%d\n",sum);
}
}
不好意思,因为昨天写题用了switch语句,所以今天依旧用了switch语句。其实这个题用if挺好的, 比switch语句稍微简单一点,但是switch语句可以看得更清楚啊。