日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词

题目:日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。A说:我不是凶手。 B说:C是凶手 C说:D是凶手。 D说:C在胡说

3个人说了真话,1个人说的是假话

现在请根据这些信息,写一个程序来确定到底谁是凶手。

首先我看到这个题感觉没有思路,不知从何处下手,但看到答案的时候就感觉很简单了,我们先来捋一捋思路!

思路:先必须定义一个变量,变量从A一直加到D,这个就是循环的功能了,在循环里面进行判定。所有的判定加起来要等于3;

#include<stdio.h>
#include<stdlib.h>

int main()
{
	char muder = 'A';
	for (muder = 'A'; muder <= 'D'; ++muder)
	{
		if (((muder != 'A') + (muder == 'C') + 
		(muder == 'D') + (muder != 'D')) == 3)
		{
			printf("muder is %c\n", muder);
		}
	}
	
	system("pause");
	return 0;
}

这种题第一眼看起来无从下手,但一看答案就很简单了!
那,,,,还有别的办法吗?

我们想想:这种题似乎出现过我们的数学试卷上,我们是如何解决的呢?用的是排除法,如果A是凶手看是否符合条件,如果不符合再看B,这样一直下去,也可以找到谁是凶手,那这种方法可以用计算机实现吗?

可以的! 大家想到了吗?其实就是把 for()循环语句改成 if () 和 else()语句.分别对ABCD进行判断。写出来很繁,而且还容易出错,代码的可读性变低。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序猿的温柔香

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值