第几天?

Problem Description

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

Input

输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。
 Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。
 Sample Input
1985/1/20
2006/3/12
 Sample Output
20 71
   
code:

#include<stdio.h>
int main()
{                                                                                            //4,5行代码不能是:int y,m,d,i,a[13];
    int y,m,d,i,a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};   //  a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};

                                                                                               //否则error C2059: syntax error : '{'
     while(scanf("%d/%d/%d",&y,&m,&d)!=EOF)                       //%d/%d中/不是除号!

       {

           int s=0;                                                          //当输入多组数据时,注意要将输出还原,如是s,a[2].
           if((y%4==0)&&(y%100!=0)||(y%400==0))
                    a[2]=29;
          for(i=0;i<m;i++)
          s=s+a[i];
          s=s+d;
         printf("%d ",s);
         a[2]=28;                         //要将a[2]=28还原!
      }
return 0;
}

闰年366天,平年365天,两者不同在于闰年2月29天,平年2月28天。

                  闰年              平年

一月:          31              31

二月:          29              28

三月:          31              31

四月:          30              30

五月:          31              31

六月:          30              30

七月:          31              31

八月:          31              31

九月:          30              30

十月:          31              31

十一月:       30              30

十二月:       31               31

原文地址:https://www.cnblogs.com/gongpulin/p/3873941.html