题目【2005】

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

猜你喜欢

转载自blog.csdn.net/yysave/article/details/41148383