Problem G: C语言习题 医生值班
Time Limit: 3 Sec Memory Limit: 128 MBSubmit: 847 Solved: 102
[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, Thursday, Friday, Saturday分别表示星期日到星期六。
Input
无
Output
每位医生的值班日
Sample Input
Sample Output
you guess!
HINT
用枚举变量。
输出提示:
Doctor A is on duty Sunday.
Doctor B is on duty .
Doctor C is on duty .
Doctor D is on duty .
Doctor E is on duty .
Doctor F is on duty .
Doctor G is on duty . (别忘了每一行最后的点呦)
#include <stdio.h>
#include <stdlib.h>
int main()
{ char str[7][10]={"Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"}; int A,B,C,D,E,F=4,G; for(A=1;A<=7;A++) for(B=1;B<=7;B++) for(C=1;C<=7;C++) for(D=1;D<=7;D++) for(E=1;E<=7;E++) for(G=1;G<=7;G++) { F=4; if(((F<C)&&(F>B)||(C<F)&&(F<B))&&(B==G-3)&&(C==A-1)&&(D==E+2)&&(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)&&(E!=F)&&(E!=G)&&(F!=G)) { printf("Doctor A is on duty %s.\n",str[A-1]); printf("Doctor B is on duty %s.\n",str[B-1]); printf("Doctor C is on duty %s.\n",str[C-1]); printf("Doctor D is on duty %s.\n",str[D-1]); printf("Doctor E is on duty %s.\n",str[E-1]); printf("Doctor F is on duty %s.\n",str[F-1]); printf("Doctor G is on duty %s.\n",str[G-1]); } } }