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;
}
相关推荐
路弥行至2 分钟前
linux运行脚本出现错误信息 /bin/bash^M: bad interpreter解决方法
linux·运维·开发语言·经验分享·笔记·其他·bash
一直不明飞行4 分钟前
C++ pari使用的两个注意事项
开发语言·c++
wefly20177 分钟前
无需安装的 M3U8 在线播放器,快速实现 HLS 流预览与调试
java·开发语言·python·开发工具
飞Link7 分钟前
深度解析:建模动作序列(Action Sequence Modeling)的实战指南
开发语言·python·数据挖掘
CoderCodingNo8 分钟前
【GESP】C++六级/五级练习题 luogu-P1323 删数问题
开发语言·c++·算法
飞Link10 分钟前
终结序列建模:Transformer 架构深度解析与实战指南
人工智能·python·深度学习·算法·transformer
We་ct11 分钟前
LeetCode 211. 添加与搜索单词 - 数据结构设计:字典树+DFS解法详解
开发语言·前端·数据结构·算法·leetcode·typescript·深度优先
小二·11 分钟前
Go 语言系统编程与云原生开发实战(第33篇)
开发语言·云原生·golang
一叶落43811 分钟前
LeetCode 202. 快乐数(C语言详解 | 三种解法 | 哈希表 + 快慢指针)
c语言·数据结构·算法·leetcode·散列表
吃着火锅x唱着歌14 分钟前
LeetCode 1190.反转每对括号间的子串
算法·leetcode·职场和发展