zoukankan      html  css  js  c++  java
  • HDU 2005 第几天?解题报告

    题目http://acm.hdu.edu.cn/showproblem.php?pid=2005

    这道题也是第一遍没有AC,错误代码如下,问题出在哪里了呢?

    #include<stdio.h>
    int main()
    {
        int y,m,d,i,sum=0;
        int a[11];
        a[0]=31;
        a[2]=31;
        a[3]=30;
        a[4]=31;
        a[5]=30;
        a[6]=31;
        a[7]=31;
        a[8]=30;
        a[9]=31;
        a[10]=30;
        a[11]=31;
        while(scanf("%d/%d/%d",&y,&m,&d)!=EOF)
        {
            
            if(y%4==0)
            a[1]=29;
            else
            a[1]=28;
            for(i=0;i<m-1;i++)
            {
                sum=sum+a[i];
            }
            sum=sum+d;
            printf("%d\n",sum);
         }
    
    
        return 0;
    
    }

    问题1:sum=0这一句一定要写在while里面,memset清空数组时候也是一样的,否则程序只能正确计算一遍。

    问题2:闰年定义都没弄清楚。。。公元纪年的年数可以被四整除,即为闰年;被100整除而不能被400整除为平年;被100整除也可被400整除的为闰年。如2

    000年是闰年,而1900年不是

    正确的代码应该是

    #include<stdio.h>
    int main()
    {
        int y,m,d,i,sum;
        int a[11];
        a[0]=31;
        a[2]=31;
        a[3]=30;
        a[4]=31;
        a[5]=30;
        a[6]=31;
        a[7]=31;
        a[8]=30;
        a[9]=31;
        a[10]=30;
        a[11]=31;
        while(scanf("%d/%d/%d",&y,&m,&d)!=EOF)
        {
            sum=0;
            if(y%4==0)
            {
                if(y%100==0&&y%400!=0)
                a[1]=28;
                else
                a[1]=29;
                
            }
            else
            a[1]=28;
            for(i=0;i<m-1;i++)
            {
                sum=sum+a[i];
            }
            sum=sum+d;
            printf("%d\n",sum);
    
    
    
        }
    
    
        return 0;
    
    }
  • 相关阅读:
    scala学习笔记4:函数和闭包
    架构模式: 领域事件
    架构模式:API组合
    架构模式: Saga
    架构模式: 客户端 UI 构建
    架构模式: 服务器端页面碎片化元素构建
    架构模式: 记录部署和变更日志
    架构模式: 健康检查API
    架构模式: 异常追踪
    架构模式:分布式跟踪
  • 原文地址:https://www.cnblogs.com/whatthefy/p/2983212.html
Copyright © 2011-2022 走看看