您的位置:首页 > 其它

杭电2005题(求一年的第几天)

2016-09-23 20:05 246 查看
[align=left]Problem Description[/align]
给定一个日期,输出这个日期是该年的第几天。
 

[align=left]Input[/align]

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

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

[align=left]Sample Input[/align]

1985/1/20
2006/3/12

 

[align=left]Sample Output[/align]

20 71
代码:

#include

int main(void)

{

 int a,b,c,i,sum;

 int
str[]={31,28,31,30,31,30,31,31,30,31,30,31};

 while(scanf("%d%d%d",&a,&b,&c)!=EOF)

 {

  sum=0;

  str[1]=28;

  if((a%4==0&&a0!=0)||(a@0==0))

   str[1]=29;

  for(i=0;i

   sum+=str[i];

   sum+=c;

   printf("%d\n",sum);

 }

 return 0;

<二>:

#include

main()

{

 int y,m,d,i;

 while(scanf("M/-/-",&y,&m,&d)==3)

 {

  i=0;

  switch(m)

  { // 使用{}来标识switch的范围

  case 12:i+=30;

  case 11:i+=31;

  case 10:i+=30;

  case 9:i+=31;

  case 8:i+=31;

  case 7:i+=30;

  case 6:i+=31;

  case 5:i+=30;

  case 4:i+=31;

  case 3:{

    if(y@0==0 ||
(y0!=0 && y%4==0) ) 

    
i+=29;

    else

    
i+=28;

    };

  case 2:i+=31;

  case 1:i+=d;

  }

   printf("%d\n",i);

 }

}

(这一题还有个问题!就是没天的日期可以超过31天,暂时还没有想出好的代码来解决,今后想到再补充吧!)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: