其他分享
首页 > 其他分享> > 真假话判断

真假话判断

作者:互联网

一位法官在审理一起盗窃案时,对涉及的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