当前位置:编程学习 > php >>

http://acm.hdu.edu.cn/showproblem.php?pid=2005 不知道还能怎么优化,希望大家能帮忙看下,代码:

#include<stdio.h>
int main(){
 int nian,yu,ri,i,m;
 char a,b;
 int sum[12]={31,28,31,30,31,30,31,31,30,31,30,31};
 
 while(1){
  m=-1;
  scanf("%d%c%d%c%d",&nian,&a,&yu,&b,&ri);
     if(nian%4==0&&nian%100!=0) {m=1;sum[1]++;}
     
        
      for(i=0;i<yu-1;i++)
         ri=ri+sum[i];
         printf("%d\n",ri);
        
        if(m==1)
            sum[1]--;
        
    
  }
}

希望能保留这种方法,不要用switch

答案:闰年的条件判断错了,改了下

#include<stdio.h>
int main(void)
{
int y,m,d,i,ri;
int sum[12]={31,28,31,30,31,30,31,31,30,31,30,31};
while (scanf("%d/%d/%d",&y,&m,&d)!=EOF) {
ri=0;
for (i=0; i<m-1; ++i) {
ri+=sum[i];
}
ri+=d;
if (m>2 && ((y%400==0)||(y%4==0 && y%100!=0))) ri+=1;
printf("%d\n",ri);
}
}

上一个:php 正则匹配问题
下一个:PHP 问题

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,