杭电2005 第几天

hdu 2005 第几天

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

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

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

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

Sample Output
20
71

做这个题只要把握好两点:
第一,判断该年份是否闰年;
第二,判断在闰年情况下月份是否大于2月;

代码如下:

#include"stdio.h"
main()
{
    int a[]={0,31,28,31,30,31,30,31,31,30,31,30,31 }; //首先列举平年中每个月的天数,以便使用
    int year,month,day,j,s;
    while(scanf("%d/%d/%d",&year,&month,&day)!=EOF)
    {
        s=day;
        if(year%400==0||(year%4==0&&year%100!=0)&&month>2)//判断闰年的条件,并且要求月份超过2s=s+1;
        for(i=1;i<month;i++)
          s+=a[i];
        printf("%d\n",s);
    }
    return 0;
}

你可能感兴趣的:(编程基础)