zoukankan      html  css  js  c++  java
  • 打渔晒网问题

    题目:如果一个渔夫从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 打渔
  • 相关阅读:
    Android数据的四种存储方式SharedPreferences、SQLite、Content Provider和File (二) —— SQLite
    理解 Continuation
    99种用Racket说I love you的方式
    Racket Cheat Sheet
    scheme 教程 #lang racket
    开始学习Scheme
    MIT Scheme 的基本使用
    CPS变换
    SECD machine
    scheme 之门
  • 原文地址:https://www.cnblogs.com/bearkid/p/8947224.html
Copyright © 2011-2022 走看看