三天打渔两天晒网

三天打渔两天晒网(4分)

题目内容:

中国有句俗语叫“三天打鱼两天晒网”,某人从1990年1月1日起开始“三天打鱼两天晒网”,即工作三天,然后再休息两天。问这个人在以后的某一天中是在工作还是在休息。从键盘任意输入一天,编程判断他是在工作还是在休息,如果是在工作,则输出:He is working,如果是在休息,则输出:He is having a rest,如果输入的年份小于1990或者输入的月份和日期不合法,则输出:Invalid input。

输入格式: "%4d-%2d-%2d"

输出格式:

"Invalid input" 或

"He is having a rest" 或

"He is working"

输入样例1:

2014-12-22

输出样例1:

He is working

输入样例2:

2014-12-24

输出样例2:

He is having a rest

输入样例3:

2014-12-32

输出样例3:

Invalid input

注意:为避免出现格式错误,请直接拷贝粘贴上面给出的输入、输出提示信息和格式控制字符串!

#include<stdio.h>
int function(int year, int month,int day)
{
    int sum;
    switch(month)
    {
        case 1: sum=0;break;
        case 2: sum=31;break;
        case 3: sum=59;break;
        case 4: sum=90;break;
        case 5: sum=120;break;
        case 6: sum=151;break;
        case 7: sum=181;break;
        case 8: sum=212;break;
        case 9: sum=243;break;
        case 10: sum=273;break;
        case 11: sum=304;break;
        case 12: sum=334;break;
    }
    sum+=day;
    if(year%4==0 || year%100==0)
        sum++;
    return sum;
}

int main()
{
    int year,month,day,days=0;
    scanf("%4d-%2d-%2d",&year,&month,&day);
    if(year<1990 || month>12 || month<1 || day<1 || day>31)
        printf("Invalid input");
    else
    {
        for(int i=1990;i<year;i++)
        {
            if(i%4==0 || i%100==0)
            {
                days++;
            }
        }
        days=(year-1990)*365+days+function(year,month,day);
        if(days%5==1 || days%5==2 || days%5==3)
            printf("He is working");
        else printf("He is having a rest");
    }
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值