2005 第几天?
Problem Description
给定一个日期,输出这个日期是该年的第几天。 Input
输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。 Output
对于每组输入数据,输出一行,表示该日期是该年的第几天。 Sample Input
1985/1/202006/3/12
Sample Output
20
71
很基础的算日期的题,但是我还是活生生的因为数组没有把a[2][0]初始为0又wa了一遍,TAT。
代码:
#include<stdio.h>
int run(int year)
{
return ((year%4==0 && year%100!=0)||year%400==0);
}
int main()
{
int a[2][13]={
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}};
int year,day,month,k,c;
while(scanf("%d/%d/%d",&year,&month,&day)!=EOF)
{
k = run(year);
c = 0;
for(c = 1;c < month ;c ++)
{
day =day + a[k][c];
}
printf("%d\n",day);
}
return 0;
}