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]); } } }