#include
#include
char doc[7];
int location(char ch)
{
int i;
for( i=0;i':
b=location(p[2])-location(p[0])==p[3]-'0';
num+=b;
break;
default:
printf("error!\n");
}
}
if(n==num)
printf("%c%c%c%c%c%c%c\n",doc[0],doc[1],doc[2],doc[3],doc[4],doc[5],doc[6]);
else
printf("error!!!\n");
return 0;
}
}
这是我写的,不知道错在哪里,怎么改进!!跪求,急啊!!!
医院有A、B、C、D、E、F、G 7位大夫,在一星期内(星期一至星期天)每人要轮流值班一天,如果已知:
(1) A大夫比C大夫晚1天值班;
(2) D大夫比E大夫晚1天值班;
(3) E大夫比B大夫早2天值班
(4) B大夫比G大夫早4天值班;
(5) F大夫比B大夫晚1天值班;
(6) F大夫比C大夫早1天值班;
(7) F大夫星期四值班。
就可以确定周一至周日的值班人员分别为:E、D、B、F、C、A、G。
输入要求:先输入一个整数n,再输入n组条件,要求根据输入的条件能够确定唯一的值班表,且输入的n组条件中能够直接或间接得到任意两位大夫的关联关系,例如上面的条件(2)直接显示了D与E间的关系,而通过条件(1)、(6)、(5)可以间接得到A与B的关系。
条件输入格式有2种:
格式1:编号 比较运算符 编号 天数
其中比较运算符有2种: > 或 < ,分别表示“早”或“晚”
例如:A<C1表示:A大夫比C大夫晚1天值班
格式2:编号 = 数值
例如:F=4表示: F大夫在星期四值班
输出要求:根据输入信息,输出每位大夫在星期几值班。
|