C语言——猜凶手

题目:

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

以下为4个嫌疑犯的供词:

A说:不是我。

B说:是C。

C说:是D。

D说:C在胡说

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

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

=========================================================================

思路:
总体思路:
依次假设每个人是凶手进行判断,

看4人说的话是不是 1假3真,是则证明假设的该人就是凶手

定义变量:

char killer = 0; -- 凶手

因为 a b c d 的ASCII码值是连着的,

所以有 a+1=b,以此类推,依次假定每个人是凶手,判断情况

(使用 for循环 依次假定每个人是凶手)

把4句话,4个情况列出来,

情况 1假3真 ,真为 1 ,假为 0 ,

4种情况 "相加"==3 ,

(使用 if条件判断语句 实现)

即 当前假定的人就是凶手,进行打印
实现代码:

cpp 复制代码
#include <stdio.h>
int main()
{
	//定义变量:
	char killer = 0; //凶手
	//依次假定每个人是凶手:
	for (killer = 'a'; killer <= 'd'; killer++)
	//因为 a b c d 的ASCII码值是连着的,所以a+1==b,
	//以此类推,依次假定每个人是凶手,判断情况
	{
		//把4个情况列出来:
		if ((killer != 'a') + (killer == 'c') + (killer == 'd') + (killer != 'd') == 3)
		//把4句话,4个情况列出来,情况1假3真,真为1,假为0,4种情况"相加"==3,符合就是凶手进行打印
		{
			//符合则进行打印
			printf("凶手是:%c\n", killer);
			break;
		}
	}
	return 0;
}
相关推荐
谷隐凡二7 分钟前
python中ocr图片文字识别样例(一)
开发语言·python·ocr
GoFly开发者9 分钟前
Golang开发的OCR-身份证号码识别(不依赖第三方)
开发语言·golang·ocr·go语言身份证识别
简单.is.good14 分钟前
[leetcode]62_不同路径_无障碍版本
算法·leetcode
天玄地号16 分钟前
《重生之我在java世界做任务升级》--第一章
java·开发语言
Mephisto.java18 分钟前
【数据结构与算法 | 灵神题单 | 栈基础篇】力扣155, 1472, 1381
java·算法·leetcode
小_t_同学20 分钟前
C语言常见字符串函数模拟实现一
c语言·开发语言
Navigator_Z28 分钟前
LeetCode //C - 382. Linked List Random Node
c语言·算法·leetcode
技术无疆38 分钟前
【Python】Tartiflette:用 Python 实现的 GraphQL 服务器
服务器·开发语言·后端·python·pygame·graphql·python3.11
张三xy39 分钟前
数据结构 第三章 栈和队列 练习题3.2.4 迷宫求解 C语言代码
c语言·数据结构·算法
Pandaconda40 分钟前
【计算机网络 - 基础问题】每日 3 题(十八)
开发语言·经验分享·笔记·后端·计算机网络·面试·职场和发展