在某班班委成员的选举中,已知王小红、李强、丁金生三位同学被选进了班委会。该班的甲,乙,丙三名学生预言如下:
甲说:王小红为班长,李强为生活委员。
乙说:丁金生为班长,王小红为生活委员。
丙说:李强为班长,王小红为学习委员。
班委会分工名单公布后发现,甲,乙,丙三人恰好都猜对了一半。问:王小红,李强,丁金生各任何职?
#include <stdio.h>
int main()
{
int wm,dm,lm;//分别代表王当班长,丁当班长,李当班长
int wl,ll;//分别代表王或李当生活委员
int ws;//王当学习委员
for(wm=0;wm<=1;wm++){
for(dm=0;dm<=1;dm++){
for(lm=0;lm<=1;lm++){
for(wl=0;wl<=1;wl++){
for(ws=0;ws<=1;ws++){
for(ll=0;ll<=1;ll++){
if(wm+dm+lm==1){
if(wm+wl+ws==1){
if(wl+ll!=2){
if(((wm&&!ll)||(!wm&&ll))&&((dm&&!wl)||(!dm&&wl))&&((lm&&!ws)||(!lm&&ws))){
printf("wm:%d dm:%d lm:%d\n",wm,dm,lm);
printf("wl:%d ws:%d\n",wl,ws);
printf("ll:%d\n",ll);
printf("\n");
}
}
}
}
}
}
}
}
}
}
return 0;
}
wm:0 dm:1 lm:0
wl:0 ws:1
ll:1
即丁当班长,王当学习委员,李当生活委员