推理犯人

/*推理:一位法官在审理案件时,对涉及到的四位嫌疑犯A,B,C,D进行了审问:
A:"罪犯在B,C,D中"。
B:"我没有作案,是C偷的"。
C:"罪犯在A,D中"。
D:"B说的是事实". 
经过充分的调查,证实四人中有两人说谎,一人是罪犯,请找出罪犯与说谎的人*/
//分析:ABCD每人都有两种可能,一共有2^4=16种情况,将罪犯记为1 说谎记为0 
#include<stdio.h>
int main(void)
{
	int A,B,C,D;//四个嫌疑犯
	int LA,LB,LC,LD;//四句陈述 
	
	for(A=0;A<=1;A++)//循环判断A-D中的组合 
	{
		for(B=0;B<=1;B++)
	{
		for(C=0;C<=1;C++)
	{
		for(D=0;D<=1;D++)
	{
		LA=B||C||D;
		LB=!B&&C;
		LC=(A+D==1);
		LD=LB;
		if(LA+LB+LC+LD==2 && A+B+C+D==1)
		{
			if(LA)
			{
				printf("A说的是真话\n");
			}
			if(LB)
			{
				printf("B说的是真话\n");
			}
			if(LC)
			{
				printf("C说的是真话\n");
			}
			if(LD)
			{
				printf("D说的是真话\n");
			}
			if(A)
			{
				printf("A是罪犯\n");
			}
			else if(B)
			{
				printf("B是罪犯\n");
			}
			else if(C)
			{
				printf("C是罪犯\n");
			}
			else
			{
				printf("D是罪犯\n");
			}
		}
	 } 
	 } 
	 } 
	 } 
 } 
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值