• 打渔晒网问题


    题目:如果一个渔夫从2011年1月1日开始每三天打一次渔,两天晒一次网,编程实现当输入2011年1月1日以后的任意一天,输出该渔夫是在打渔还是在晒网。

    #include <stdio.h>
    int leap(int a)
    {
        if(a%4==0&&a%100!=0||a%400==0) //判断闰年
            return 1;
        else return 0;
    }
    int number(int year,int month,int day)
    {
        int i,j,k,sum;
        int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
        int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};
        if(leap(year)==1)
            for(i=0;i<month-1;i++)
                sum+=b[i]; //闰年,累加数组b前m-1个月的天数
            else 
                for(j=0;j<month-1;j++)
                    sum+=a[j]; //平年,累加数组a前m-1个月的天数
                for(k=2011;k<year;k++)
                if(leap(k)==1)
                    sum+=366; //2011年到输入的年份是闰年的加366
                else sum+=365; //2011年到输入的年份是平年的加365
                sum+=day; //将前面累加的结果加上日期,求出总天数
                return sum;
    }
    int main()
    {
        int year,month,day,n;
        printf("请输入年月日
    ");
        scanf("%d%d%d",&year,&month,&day);
        n=number(year,month,day);
        if((n%5)<=3&&(n%5)>0) //余数为1或2或3时说明在打渔,其他则在晒网
            printf("%d-%d-%d 打渔
    ",year,month,day );
        else printf("%d-%d-%d 晒网
    ",year,month,day );
        return 0;
    }

    结果

    E:c++>a
    请输入年月日
    2011 5 5
    2011-5-5 晒网
    
    E:c++>
    E:c++>a
    请输入年月日
    2012 5 5
    2012-5-5 打渔
  • 相关阅读:
    计算机网络基础:TCP运输连接管理(三次握手 + 四次挥手)
    Zookeeper集群及配置
    Maven安装及配置
    SpringMVC拦截器+Spring自定义注解实现权限验证
    Spring之AOP配置
    设置Google浏览器不缓存JS
    数据加密之AES
    SpringMVC配置多个自定义拦截器
    利用Zookeeper实现分布式锁
    数据加密之RSA
  • 原文地址:https://www.cnblogs.com/bearkid/p/8947224.html
Copyright © 2020-2023  润新知