公安人员审问四名窃贼嫌疑犯

公安人员审问四名窃贼嫌疑犯。已知,这四人当中仅有一名是窃贼,还知道这四人中每人说话要么全是真的,要么全是假的。在回答公安人员的问题中:

甲说:“乙没有偷,是丁偷的。” 乙说:“我没有偷,是丙偷的。” 丙说:“甲没有偷,是乙偷的。” 丁说:“我没有偷。”

请根据这四人的答话编程判断谁是盗窃者。

```

#include
int main()
{
	char cri;
	for (cri = 'a'; cri <= 'd'; cri++)
	{
		if ((cri != 'b' + (cri == 'd') != 1) && ((cri != 'b') + (cri == 'c') != 1) && ((cri != 'a') + (cri == 'b') != 1))
			break;
	}
	putchar(cri);


	return 0;
}

```

题目告诉我们只有一个人是罪犯,所以设置一个char型变量cri。

让cri遍历所有可能的情况。

而且甲乙丙所说的话都是有两句,要么全为真,要么全为假。

以甲所说的话为例 “乙没有偷” 即为 cri!='b' 。“是丁偷的”,即为cri=='d'。

而这两句话要么全为真,要么全为假。

即为 (cri!='b')+(cri!='d')!=1;

而最后一个丁的叙述对判断没有影响,所以在判断条件那里没有体现出来。

最后输出满足条件时,cri所对应的值。

你可能感兴趣的:(公安人员审问四名窃贼嫌疑犯)