Submit: 814 Solved: 445
[Submit][Status][Web Board]
Description
医院内科有A,B,C,D,E,F,G,H共七位医生,每人在一周内要值一次夜班,排班的要求是:
(1) A医生值班日比C医生晚1天
(2) D医生值班日比E医生晚2天
(3) B医生值班日比G医生早3天
(4) F医生的值班日在B医生和C医生的值班日之间,且是星期四
请编写程序,输出每位医生的值班日。值班日以Sunday, Monday ,Tuesday, Wednesday, Thurday, Friday, Saturday分别表示星期日到星期六。
Input
无
Output
每位医生的值班日
Sample Input
Sample Output
you guess!
HINT
用枚举变量。
#include<stdio.h>
int
main()
{
int
a,b,c,d,e,f=4,g;
char
s[7][20]={
"Monday"
,
"Tuesday"
,
"Wednesday"
,
"Thursday"
,
"Friday"
,
"Saturday"
,
"Sunday"
};
int
i;
for
(a=1;a<8;a++)
for
(b=1;b<8;b++)
for
(c=1;c<8;c++)
for
(d=1;d<8;d++)
for
(e=1;e<8;e++)
for
(g=1;g<8;g++)
{
if
((a==c+1)&&(d==e+2)&&(b==g-3)&&((f>b&&f<c)||(f<b&&f>c))&&(a!=b)&&(a!=c)&&(a!=d)&&(a!=e)&&(a!=f)&&(a!=g)&&(b!=c)&&(b!=d)&&(b!=e)&&(b!=f)&&(b!=g)&&(c!=d)&&(c!=e)&&(c!=f)&&(c!=g)&&(d!=e)&&(d!=f)&&(d!=g)&&(f!=g))
{
printf
(
"Doctor A is on duty %s.\n"
,s[a-1]);
printf
(
"Doctor B is on duty %s.\n"
,s[b-1]);
printf
(
"Doctor C is on duty %s.\n"
,s[c-1]);
printf
(
"Doctor D is on duty %s.\n"
,s[d-1]);
printf
(
"Doctor E is on duty %s.\n"
,s[e-1]);
printf
(
"Doctor F is on duty %s.\n"
,s[f-1]);
printf
(
"Doctor G is on duty %s.\n"
,s[g-1]);
}
}
}