三天打鱼两天晒网

通过编程判断任意日期处于“三天打鱼两天晒网”的工作或休息周期。根据输入的日期确定个体是在工作还是在休息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

题目内容:

中国有句俗语叫“三天打鱼两天晒网”,某人从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

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

时间限制:500ms内存限制:32000kb
#include <stdio.h>
main()
{
	int year,month,day,syear,countLeap=0,i,dday,loss1mday,Sumday,judge;
	scanf("%4d-%2d-%2d",&year,&month,&day);
	if(year<1990||month<1||month>13||day<1||day>31)
		printf("Invalid input");
	else
	{
		syear=year-1990-1;
		for(i=0;i<(year-1990-1);i++)
		{
			if((1990+i)%4 == 0)
				countLeap++;
		}
		dday=365*syear+countLeap;
		if(year%4 == 0)
		{
			switch(month-1)
			{
				case 1: loss1mday=31; break;
				case 2: loss1mday=31+29; break;
				case 3: loss1mday=31+29+31;break;
				case 4: loss1mday=31+29+31+30; break;
				case 5: loss1mday=31+29+31+30+31; break;
				case 6: loss1mday=31+29+31+30+31+30; break;
				case 7: loss1mday=31+29+31+30+31+30+31; break;
				case 8: loss1mday=31+29+31+30+31+30+31+31;break;
				case 9:	loss1mday=31+29+31+30+31+30+31+31+30;break;
				case 10: loss1mday=31+29+31+30+31+30+31+31+30+31;break;
				case 11: loss1mday=31+29+31+30+31+30+31+31+30+31+30;break;
			}
		}
		else
				switch(month-1)
			{
				case 1: loss1mday=31; break;
				case 2: loss1mday=31+28; break;
				case 3: loss1mday=31+29+31;break;
				case 4: loss1mday=31+29+31+30; break;
				case 5: loss1mday=31+29+31+30+31; break;
				case 6: loss1mday=31+29+31+30+31+30; break;
				case 7: loss1mday=31+29+31+30+31+30+31; break;
				case 8: loss1mday=31+29+31+30+31+30+31+31;break;
				case 9:	loss1mday=31+29+31+30+31+30+31+31+30;break;
				case 10: loss1mday=31+29+31+30+31+30+31+31+30+31;break;
				case 11: loss1mday=31+29+31+30+31+30+31+31+30+31+30;break;

			}
		Sumday=dday+loss1mday+day;
		judge=Sumday%5;
		switch(judge)
		{
	
		case 1:
		case 2:
		case 3:printf("He is working");break; 
		case 4:	
		case 0:printf("He is having a rest");break;
		}

	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值