C趣味程序百例(17)哪个大夫哪天值班

文章作者 100test 发表时间 2007:03:10 17:31:22
来源 100Test.Com百考试题网


55.哪个大夫哪天值班
医院有A、B、C、D、E、F、G七位大夫,在一星期内(星期一至星期天)每人要轮流值班一天。现在已知:
A大夫比C大夫晚一天值班;
D大夫比E大夫晚二天值班;
B大夫比G大夫早三天值班;
F大夫的值班日在B和C大夫的中间,且是星期四;
请确定每天究竟是哪位大夫值班?
*问题分析与算法设计
由题目可推出如下已知条件:
*F是星期四值班;
*B值班的日期在星期一至星期三,且三天后是G值班;
*C值班的日期在星期五至星期六,且一天后是A值班;
*E两天后是D值班;E值班的日期只能在星期一至星期三;
在编程时用数组元素的下标1到7表示星期一到星期天,用数组元素的值分别表示A~F七位大夫。
*程序与程序注释
#include
#include
int a[8].
char *day[]={"","MONDAY","TUESDAY","WEDNESDAY","THURSDAYT",
"FRIDAY","SATUDAY","SUNDAY"}. /*建 立星期表*/
void main()
{
int i,j,t.
a[4]=6. /*星期四是F值班*/
for(i=1.i<=3.i )
{
a[i]=2. /*假设B值班的日期*/
if(!a[i 3]) a[i 3]=7. /*若三天后无人值班则安排G值班*/
else{ a[i]=0.continue.} /*否则B值班的日期不断对*/
for(t=1.t<=3.t ) /*假设E值班的时间*/
{
if(!a[t]) a[t]=5. /*若当天无人值班则安排E值班*/
else continue.
if(!a[t 2]) a[t 2]=4. /*若E值班两天后无人值班则应为D*/
else{ a[t]=0.continue.} /*否则E值班的日期不对*/
for(j=5.j<7.j )
{
if(!a[j]) a[j]=3. /*若当天无人值班,则安排C值班*/
else continue.
if(!a[j 1]) a[j 1]=1. /*C之后一天无人值班则应当是A值班*/
else{ a[j]=0.continue.} /*否则A值班日期不对*/
for(i=1.i<=7.i ) /*安排完毕,输出结果*/
printf("Doctor %c is on duty %s.\n",’A’ a[i]-1,day[i]).

相关文章


全国计算机等级考试报考条件和报考对象
C趣味程序百例(17)区分旅客国籍
全国计算机等级考试二级Access考试(样题1)
C趣味程序百例(17)哪个大夫哪天值班
2005年全国计算机等级考试二级Access考试模拟题
全国计算机等级考试福建省考点介绍
报考指南河北省考点介绍
全国等级考试二级计算机模拟考试笔试(三)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛