真假话判断
作者:互联网
一位法官在审理一起盗窃案时,对涉及的4名嫌疑犯A、B、C、D进行了审问。4人分别供述如下:
A:“罪犯在B、C、D三人之中。”
B:“我没有作案,是C偷的。”
C:“在A和D中间有一个是罪犯。”
D:“B说的是事实。”
经过充分的调查,证实4人中只有两人说了真话,另外两人说的是假话,并且罪犯只有一个。请确定真正的罪犯。
**输出格式要求:"%d,%d,%d,%d\n" “A是罪犯.\n” “B是罪犯.\n” “C是罪犯.\n” “D是罪犯.\n”`
#include<stdio.h>
int main()
{
int a, b, c, d; //定义罪犯的值为1
for (a = 0; a < 2; a++)
{
for (b = 0; b < 2; b++)
{
for (c = 0; c < 2; c++)
{
for (d = 0; d < 2; d++)
{
if (a + b + c + d == 1) //只有一个罪犯
{
if ((b==1||c==1||d==1)+2*(b==0&&c==1)+(a==1||d==1)==2) //有两句话为真
{
printf("%d,%d,%d,%d\n",a,b,c,d);
if(a) printf("A是罪犯.\n");
if(b) printf("B是罪犯.\n");
if(c) printf("C是罪犯.\n");
if(d) printf("D是罪犯.\n");
return 0;
}
}
}
}
}
}
}
标签:判断,++,int,罪犯,只有,printf,真假,盗窃案 来源: https://blog.csdn.net/qq_51399145/article/details/112392238