HDU 2005 第几天?

                  第几天?


 

Problem Description
给定一个日期,输出这个日期是该年的第几天。
 

 

Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
 

 

Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
 

 

Sample Input
1985/1/20
2006/3/12
 

 

Sample Output
20
71
 
代码:
 1 #include<cstdio>
 2 using namespace std;
 3 
 4 int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
 5 int b[13]={0,31,29,31,30,31,30,31,31,30,31,30,31};
 6 
 7 bool judge(int year)
 8 {
 9     if(year%4==0&&year%100!=0||year%400==0)
10     return true;
11     return false;
12 }
13 
14 int main()
15 {
16     int i;
17     int year,month,day,count;
18     while(scanf("%d/%d/%d",&year,&month,&day)!=EOF)
19     {
20         count=0;
21         bool flag=judge(year);
22         if(flag)
23         {
24             for(i=1;i<month;i++)
25             count+=b[i];
26             count+=day;
27         }
28         else
29         {
30             for(i=1;i<month;i++)
31             count+=a[i];
32             count+=day;
33         }
34         printf("%d
",count);
35     }
36     return 0;
37 }
原文地址:https://www.cnblogs.com/homura/p/4674231.html