题目内容:
中国有句俗语叫“三天打鱼两天晒网”,某人从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",
if(a<1990||b>12||b<1||c>31||c<1)
{
printf("Invalid input");
j=1;
}
if((a%4==0&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&0)||i%400==0)
count++; //count记录闰年的次数
else
coun++; //coun记录平年的次数
}
sum=count*366+coun*365+s;
sum=sum%5;
if(sum>0&&sum<41)
printf("He is working");
else if((sum==3||sum==0)1)
printf("He is having a rest");
return 0;
}