版权声明:本人原创文章若需转载请标明出处和作者!沙 https://blog.csdn.net/weixin_44143702/article/details/89109793
谁是作案嫌疑人?
Time Limit: 1000 ms Memory Limit: 65536 KiB
Problem Description
刑侦大队对涉及六个嫌疑人的一桩疑案进行分析:
一、a ,b至少有一人作案;
二、a,e,f三人中至少有两人参与作案;
三、 a ,d不可能是同案犯;
四、b,c或同时作案,或与本案无关;
五 c,d中有且只有一人作案;
六 如果d没有参与作案则e也不可能参与作案。
试编写程序,寻找作案人。
Input
多组测试数据,对于每组测试数据,第 1 行输入 6 个空格分隔的整数,代表a、b、c 、d 、e 、f的编号,编号x范围(1 <= x <= 6),且编号互不相同。
Output
对于每组测试数据,第 1 行至第 6 行分别输出对 a、b、c 、d 、e 、f的判断,详细输出格式请参考样例。
Sample Input
1 2 3 4 5 6
Sample Output
The suspects numbered 1 are criminals. The suspects numbered 2 are criminals. The suspects numbered 3 are criminals. The suspect numbered 4 is not a criminal. The suspect numbered 5 is not a criminal. The suspects numbered 6 are criminals.
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a,b,c,d,e,f;
int A, B, C, D, E, F ;
while (~scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f))
{
for(A = 0 ; A <= 1 ; A +=1)
for(B = 0 ; B <= 1 ; B +=1)
for(C = 0 ; C <= 1 ; C+=1)
for(D = 0 ; D <= 1 ; D+=1)
for(E = 0 ; E <= 1 ; E+=1)
for(F = 0 ; F <= 1 ; F+=1)
{
if(( A || B )&&( !(A && D) )&&( (A && E) || (A && F) || (E && F) )
&&( (B && C) || (!B && !C) )&&( (C && !D) || (D && !C) )&&( D||(!E)) )
{
if (A==1)
printf("The suspects numbered %d are criminals.\n",a);
else
printf("The suspect numbered %d is not a criminal.\n",a);
if (B==1)
printf("The suspects numbered %d are criminals.\n",b);
else
printf("The suspect numbered %d is not a criminal.\n",b);
if (C==1)
printf("The suspects numbered %d are criminals.\n",c);
else
printf("The suspect numbered %d is not a criminal.\n",c);
if (D==1)
printf("The suspects numbered %d are criminals.\n",d);
else
printf("The suspect numbered %d is not a criminal.\n",d);
if (E==1)
printf("The suspects numbered %d are criminals.\n",e);
else
printf("The suspect numbered %d is not a criminal.\n",e);
if (F==1)
printf("The suspects numbered %d are criminals.\n",f);
else
printf("The suspect numbered %d is not a criminal.\n",f);
}
}
}
return 0 ;
}