C语言小游戏 - 猜凶手

猜凶手

日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。
以下为4个嫌疑犯的供词 :
A说:不是我。 // 说话为真结果是不是就为1,否则 0
B说:是C。
C说:是D。
//D说:C在胡说
已知3个人说了真话,1个人说的是假话。// 也就是说以上四个条件,有三个条件为真,一个为假

我们来先理一下逻辑

//凶手无非就是4人中的一个
//假设 A 是凶手:A话,B话,因为只有1个人说假话,那么 A 肯定不是凶手
//假设 B 是凶手, A话,B话,C话,所以 B 不是凶手
//假设 C 是凶手, A话,B话,C话,D话,那么 C 满足条件,肯定是凶手
//假设 D 是凶手, A话, B话,C话,D话,所以 D 不是凶手

#include<stdio.h>
int main()
{
	int killer = 0;
	for (killer = 'A'; killer <= 'D'; killer++)//假设凶手,遍历4人
	{
		if (
			(killer != 'A') // A说:不是我
			+(killer == 'C') // B说:是C
			+(killer == 'D') // C说:是D
			+(killer != 'D')// D说:C在胡说 ( 不是我 )
			 == 3 // 判断是否满足3个人说真话的条件==
			)
			printf("%c\n", killer); ==// 满足条件,我们就把凶手打印出来==
	}
	return 0;
}
  • 10
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Dark And Grey

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

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

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

打赏作者

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

抵扣说明:

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

余额充值