第几天?
问题描述:
Problem Description | 给定一个日期,输出这个日期是该年的第几天。 |
Input | 输入数据有多组,每组占一行,数据格式为YYYY/MM/DD组成,具体参见sample input ,另外,可以向你确保所有的输入数据是合法的。 |
Output | 对于每组输入数据,输出一行,表示该日期是该年的第几天。 |
Sample Input | 1985/1/20 |
Sample Output | 20 |
问题分析:
基础知识。需要注意的就是:
判断N是否为闰年的方法:N能4整数但不能被100整除 或者 N能被400整除
算出第N年的每个月的天数后就从一月开始累加,不要忘了最后要加天数。
源程序:
#include<stdio.h>
int main()
{
int i,y,m,d,sum;
int a[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
while(scanf("%d/%d/%d",&y,&m,&d) != EOF)
{
sum = 0;
for(i = 1; i < m; i++)
{
if((y%4==0&&y%100!=0) || y%400==0)
a[2] = 29;
sum += a[i];
}
printf("%d\n",sum+d);
}
return 0;
}