您的位置:首页 > 其它

逻辑推理与判断(哪个大夫哪天值班)

2015-01-27 22:05 441 查看
/****************************************
*  File Name  : reasoning.c
*  Creat Data : 2015.1.26
*  Author     : ZY
*****************************************/

/*逻辑推理与判断*/
/*哪个大夫哪天值班*/
/*医院有A,B,C,D,E,F,G七位大夫,在一星期内(星期一至星期天)
每人轮流值班一天,现在已知:
A大夫比C大夫晚一天值班
D大夫比E大夫晚两天值班
B大夫比G大夫早三天值班
F大夫的值班日在B和C大夫的中间,且是星期四
请确定每天究竟是哪位大夫值班。
F是星期四值班
B值班的日期是星期一至星期三,且三天后是G值班
C值班是星期五至星期六,且一天后是A值班
E两天后是D值班;E值班的日期只能是星期一至星期三
用数组编程*/

#include <stdio.h>
int main(void)
{
char *day[] = {"","Monday","Tuesday","Wednesday",
"Thursday","Friday","Saturday","Sunday"};
int i,t,j;
int a[8]={0};
a[4] = 6;
for(i = 1;i < 4;i++)
{
a[i] = 2;;
if(!a[i+3])
{
a[i+3] = 7;
}
else
{
a[i] = 0;
continue;
}
for(t = 1;t < 4;t++)
{
if(!a[t])
{
a[t] = 5;
}
else
{
continue;
}
if(!a[t+2])
{
a[t+2] = 4;
}
else
{
a[t] = 0;
continue;
}
for(j = 5;j < 7;j++)
{
if(!a[j])
{
a[j] = 3;
}
else
{
continue;
}
if(!a[j+1])
{
a[j+1] = 1;
}
else
{
a[j] = 0;
continue;
}
for(i = 1;i < 8;i++)
{
printf("Doctor %c is on duty %s.\n",
'A'-1+ a[i],day[i]);
}
}
}
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: