C语言:三天打渔两天晒网

题目内容:

中国有句俗语叫“三天打鱼两天晒网”,某人从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 main()
{
	int a,b,c,s=0,sum,count,coun,i,j=0;
	int yue[12]={31,29,31,30,31,30,31,31,30,31,30,31};
	int yu[12]={31,28,31,30,31,30,31,31,30,31,30,31};
	scanf("%4d-%2d-%2d",&a,&b,&c);
	if(a<1990||b>12||b<1||c>31||c<1)
	{
	 printf("Invalid input");
	 j=1;
    }
	if((a%4==0&&a%100!=0)||a%400==0)
	{
		if(b==2&&c>29)
	    {
		    printf("Invalid input");
		    j=1;
	    }
	    else
	    {
	    	s=c;
	    	for(i=0;i<b-1;i++)
	    	s+=yue[i];
		}
	}
	else{
		if(b==2&&c>28)
		{
		    printf("Invalid input");
		    j=1;
	    }
		else
		{   
		    s=c;
			for(i=0;i<b-1;i++)
			s+=yu[i];
		}
	}

	for(i=1990;i<a;i++)
	{
		if((i%4==0&&i%100!=0)||i%400==0)
		count++; //count记录闰年的次数
		else
		coun++; //coun记录平年的次数
	}
	
	sum=count*366+coun*365+s;
	sum=sum%5; 
	if(sum>0&&sum<4&&j!=1)
	printf("He is working");
	else if((sum==3||sum==0)&&j!=1)
	printf("He is having a rest");
	return 0;
	
	
}

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值