#include<stdio.h> int main(){ int A=0,B=0,C=0,D=0,E=0,F=0; for(A=0;A<2;A++) for(B=0;B<2;B++) for(C=0;C<2;C++) for(D=0;D<2;D++) for(E=0;E<2;E++) for(F=0;F<2;F++){ if(6==(A||B)+ ((A&&E)||(A&&F)||(E&&F))+ (!(A&&D))+ ((B&&C)||(!B&&!C))+ ((C&&!D)||(!C&&D))+ (D&&(!E)) ) break;} printf("%d %d %d %d %d %d\n",A,B,C,D,E,F); if(A=1) printf("嫌疑人是A\n"); if(B=1) printf("嫌疑人是B\n"); if(C=1) printf("嫌疑人是C\n"); if(D=1) printf("嫌疑人是D\n"); if(E=1) printf("嫌疑人是E\n"); if(F=1) printf("嫌疑人是F\n");return 0; }
供参考:
#include<stdio.h>
int main()
{
int A=0,B=0,C=0,D=0,E=0,F=0;
for(A=0;A<2;A++)
for(B=0;B<2;B++)
for(C=0;C<2;C++)
for(D=0;D<2;D++)
for(E=0;E<2;E++)
for(F=0;F<2;F++)
if(6==(A || B)//A B 至少有一人作案
+ ((A && E) ||(A && F)||(E && F))//A E F 至少有二人参与作案
+ ((!A&& D) ||(A && !D))//A D 不可能是同案犯
+ ((B && C) ||(!B&& !C))//B C 或同时,或与本案无关
+ ((C && !D)||(!C&& D))//C、D 中有且仅有一人作案
+ ((D && E) ||(!D&& !E)))//如果 D 没有参与作案,则 E 也不可能参与作案
{
printf("%d %d %d %d %d %d\n", A, B, C, D, E, F);
if (A == 1) printf("嫌疑人是A\n");
if (B == 1) printf("嫌疑人是B\n");
if (C == 1) printf("嫌疑人是C\n");
if (D == 1) printf("嫌疑人是D\n");
if (E == 1) printf("嫌疑人是E\n");
if (F == 1) printf("嫌疑人是F\n");
//break;
}
return 0;
}