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

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

A说:不是我。

B说:是C。

C说:是D。

D说:C在胡说

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

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


我相信大家肯定在做数学卷子时碰见过这道题,而大家一般的解题思路就是分析假设(如下)

当A是凶手时:

A说的是假话、B说的是假话、C说的是假话、D说的是真话

当B是凶手时:

A说的是真话、B说的是假话、C说的是假话、D说的是真话

当C是凶手时:

A说的是真话、B说的是真话、C说的是假话、D说的是真话

当D是凶手时:

A说的是真话、B说的是假话、C说的是真话、D说的是假话

由以上分析可得,C是凶手

但是问题来了,我们怎么将上述分析转化成编程呢?

假设凶手是killer,那么killer = ‘A’或‘B’或‘C’或‘D’。

那killer是不是就可以作为循环变量,取值范围为字符A、字符B、字符C、字符D

假设killer是A         假设killer是B         .....         假设killer是D

现在我们把每个人的说法转换成表达式,然后在循环内把表达式的值加起来,

如果值等于三那么就打印该字符,不等于3就跳过

(三句真话一句假话,就是 1、1、1、0)

A说:不是我。 killer != 'A'

B说:是C。 killer == 'C'

C说:是D。 killer == 'D'

D说:C在胡说 killer != 'D'

拓展:

当一个表达式为真时,该表达式返回值为1

例:表达式的值为 1、10、-1 等不为零的数值,表达式为真

当一个表达式为假时,该表达式返回值为0

代码实现:

#include<stdio.h>
int main()
{int killer = 0;for (killer = 'A'; killer <= 'D'; killer++){if ((killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D') == 3){printf("凶手是:%c", killer);}}return 0;
}

【C语言走进现实】猜凶手相关推荐

  1. C语言小游戏 - 猜凶手

    猜凶手 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个. 以下为4个嫌疑犯的供词 : A说:不是我. // 说话为真,结果是不是就为1,否则 0 B说:是C. C说:是D. / ...

  2. C语言编程题——猜凶手

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

  3. c语言期末考试压轴编程题——猜凶手、猜名词、喝汽水、水仙花数

    目录 C语言大一期末必考压轴编程题 几道C语言初阶学习必考题,尤其最后一道打印水仙花数,C语言期末考试必备大题,不要错过!!! 以下个人思路仅供参考,如有更优算法,欢迎评论! 目录 一.猜凶手 题目: ...

  4. C语言 猜凶手及类似题目

    描述: 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个. 以下为4个嫌疑犯的供词: A说:不是我. B说:是C. C说:是D. D说:C在胡说 已知3个人说了真话,1个人说的是 ...

  5. c语言智力题 操作符详解例题 数据存储 指针初阶 水仙花数 杨辉三角 逆序字符串 喝汽水问题 打印图形 猜凶手 使用指针打印数组内容 调整奇数偶数顺序 运动员猜名次

    [题目名称] 下面代码的结果是:a #include <stdio.h> int i; int main() {i--; //sizeof'的返回值是无符号整型if (i > siz ...

  6. 伟大前程与技术难关:量子机器学习该如何走进现实?

    量子为什么能够计算?量子机器学习该如何走进现实?本文回答了量子计算的原理,发展现状,以及成长预期,与大家分享! 在我们描述21世纪刚刚过去的第二个十年的技术版图中,人工智能(AI).大数据(Big D ...

  7. 如何让强化学习走进现实世界?DeepMind要用“控制套件”推动

    夏乙 编译整理 量子位 出品 | 公众号 QbitAI 火遍全球的AlphaGo让我们知道了强化学习打游戏究竟有多6,这么强大的算法什么时候才能打破次元壁,走进现实.控制物理世界中的物体呢? Deep ...

  8. 你知道猜凶手和猜名次如何利用编程实现吗?

    我们先来看看猜名次的题目: 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果: A选手说:B第二,我第三: B选手说:我第二,E第四: C选手说:我第一,D第二: D选手说:C最后,我第三: ...

  9. “环太平洋”走进现实,五角大楼研发人与武器互动的意念控制技术

    人类用思想控制机器催生了许多像"环太平洋"类似的大片,影片中如摩天大楼高的战斗机器人非常酷炫,下一步,这种战斗机器人或将走进现实世界. 据美国政府技术网站 Nextgov 7 月 ...

最新文章

  1. 数据分析最有用的Top 50 Matplotlib图(带有完整的Python代码)(上)
  2. 如何在代码中让按钮高亮_如何在C代码中插入移位寄存器
  3. 华为交换机配置DHCP服务器
  4. 逆序对java_算法导论学习||查找逆序对
  5. thymeleaf和freemarker比较
  6. UVA-10026 Shoemaker's Problem (贪心)
  7. 2021-09-08 集成学 习 思想概述
  8. 5种常见的网络欺骗方式
  9. bex5 mysql_bex5 库存系统的增删改查等功能对MYSQL数据库的维护操作 Windows Develop 276万源代码下载- www.pudn.com...
  10. 三菱PLC与威伦触摸屏通过OPC通信连接在线模拟仿真
  11. (一)目标检测经典模型回顾
  12. 中国十大会计师事务所排名公布!刚刚,中注协正式通知!
  13. IELTS11 Test2 laws are needed to make people recycle more of their waste
  14. php 转义反绡线,PHP汉字转拼音
  15. APP发布的三个证书作用
  16. erlang使用httpc:request报错nxdomain
  17. UE4球体根据镜头方向前进
  18. linux 取得文件行数
  19. 8.10 第七场 Smzzl with Tropical Taste
  20. NASA从太空发射激光,制作地球森林高度地图

热门文章

  1. 第二十二天:期末考前整理的20条好句子
  2. 牛客-模拟、枚举与贪心-2022.10.18
  3. reduce的方法详解
  4. Hbase学习之——协处理Coprocessor的使用
  5. 【2022 CSDN OpenHarmony应用学习挑战赛】
  6. matlab文件名批量读取dat文件,matlab批量读取dat
  7. Linux文件系统架构
  8. Qt之旅---10 双缓冲绘图
  9. 获取任意时间前几分钟前的时间点的方法
  10. 鱼叉式网络钓鱼和网络钓鱼_您需要了解的反网络钓鱼标准–第1部分