日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯
的一个。以下为4个嫌疑犯的供词。
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。
的一个。以下为4个嫌疑犯的供词。
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。
现在请根据这些信息,写一个程序来确定到底谁是凶手。
需要注意的是如何判定三人说真话,一人说谎。
已知每人说谎为0,说真话为1,所以只需判断三人的语句加起来的总和是否为3,即可判定。
结合上篇排名顺序的博客,代码如下
#include<stdio.h>
#include<windows.h>
int main()
{
int a = 1;
int b = 1;
int c = 1;
int d = 1;
int falg = 0;
int n = 0;
for (a = 1; a <=2; a++)//1杀人,2没杀
{
for (b = 1; b <=2; b++)
{
for (c = 1; c <=2; c++)
{
for (d = 1; d <=2; d++)
{
if ((a == 2) + (c == 2) + (d == 1) + (d == 0) == 3)
printf(" a=%d,b=%d,c=%d,d=%d\n",a, b, c, d);
n = 0;//跳出循环
}
}
}
}
system("pause");
return 0;
}