新手急需求解(要不然我的脑细胞会被杀完的)
某参观团按一下条件限制从ABCDE五个地方种选若干参观点:(1)如果去A,就必须去B;
(2)D和E只能去其中一个地方;
(3)B和C只能去其中一个地方;
(4)C和D要么都去,要么都不去;
(5)如果去E地,则必须去A和D。
问参观团能去哪几个让地方

程序代码:/*
设要去的地方为1 ,不去的地方时0;
则:
1.if(a==1)b=1;
2.如果d是1,那么e是0;如果e是1,那么d是0;要么都不去:
即:(d^e==1)||(d|e==0);
3.同理
(b^c==1)||(b|c==0);
4.同理
c^d==0;
5.if(e==1) {a=1;d=1;}
*/
#include<stdio.h>
int main(void){
int a,b,c,d,e;
for(a=0;a<=1;a++)
for(b=0;b<=1;b++)
for(c=0;c<=1;c++)
for(d=0;d<=1;d++)
for(e=0;e<=1;e++){
int bT=b,aT=a,dT=d;//因为要用到b,a,d,又不能改变它在循环中的值,就设置几个临时变量
if(e==1){
aT=1;
dT=1;
}
if(a==1||aT==1)
bT=1;
if(((dT^e)==1||(dT|e)==0)&&((bT^c)==1||(bT|c)==0)&&(c^d)==0)
printf("A is%d\nB is%d\nC is %d\nD is %d\nE is %d\n\n",aT,bT,c,dT,e);
}
scanf("%d",&a);
}还不完美 不过大约就这样