1. 程式人生 > >慕課第八週_練兵區_第一題

慕課第八週_練兵區_第一題

1 三天打漁兩天晒網(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>
#define SIZE 13
int isor(int year,int month,int day);
void output(int sum);
int main()
{
int year, month, day,sum;
scanf("%4d-%2d-%2d", &year,& month,& day);
if(year < 1990 || month>12 || month < 1 || day>31 || day < 1)
{
printf(“Invalid input\n”);
}
else
{
sum=isor(year,month,day);
output(sum);
}
return 0;

}
int isor(int year,int month,int day)
{
int y,count=0,m=0;
int a[SIZE]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int n,i,sum=0,number;
for(y=1990;y<=year;y++)
{
if(y%40 && y%100!=0 || y%4000)
{
count++;
}
m++;
}
n=month-1;
for(i=0;i<=n;i++)
{
sum+=a[i];
}
number=day-1;
sum+=number;
if(count!=0)
{
if(month>2)
sum=sum+(m-1)*365+count;
else
sum=sum+(m-1)*365+count-1;
}
else
sum=sum+(m-1)*365+count;
return sum;
}
void output(int sum)
{
int c;
c=sum%5;
switch©
{
case 1:
case 2:
case 0:

	printf("He is working\n");
	break;		
case 3:
case 4:
	printf("He is having a rest\n" );
	break;
}

}

你是我如夢如幻的畫,
想把你寫進我的程式碼;
我日夜思念的臉龐啊,
碼出初見你時的模樣。
by皇棠
to那年夏天