hdoj 第几天?

来源:互联网 发布:淘宝单号购买平台 编辑:程序博客网 时间:2024/05/22 01:14
Problem Description
给定一个日期,输出这个日期是该年的第几天。
 

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

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

Sample Input
1985/1/202006/3/12
 

Sample Output
2071
 代码:
#include<stdio.h>
int main()
{
    int days[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int year,month,day;
    while(scanf("%d/%d/%d",&year,&month,&day)!=EOF)
    {
     if((year%4==0&&year%100!=0)||(year%400==0))
     {
     days[2]++;
     if(month==1)
     printf("%d\n",day);
     else
     {
     for(int i=1;i<=month-1;i++)
     {
      day=days[i]+day;
     }
     printf("%d\n",day);
  }
        days[2]--;
  }
  else
  {
  if(month==1)
     printf("%d\n",day);
     else
     {
     for(int i=1;i<=month-1;i++)
     {
      day=days[i]+day;
     }
     printf("%d\n",day);
  }
 }
    }
        return 0;
}
   
注意:在定义数组时注意第一个数字是b【0】所代表的,所以在定义十二个月的天数时要定义是三个数字,第一个可以为任意数,从第二个开始才是每月天数。
0 0
原创粉丝点击