题目【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语句可以看得更清楚啊。