C语言每日一题(10):无人生还

标头
无人生还


  • 文章主题:无人生还🔥
  • 所属专栏:C语言每日一题📗
  • 作者简介:每天不定时更新C语言的小白一枚,记录分享自己每天的所思所想😄🎶
  • 个人主页:[₽]的个人主页🏄🌊

目录

  • 前言
    • 编程起因
    • 项目介绍
      • 情节简介
      • 讨论内容
      • 找出凶手
  • 设计思路
    • 1.整体逻辑
      • 方法一
      • 方法二
    • 2. 具体逻辑
      • 方法一
      • 方法二
  • 代码展示
    • 方法一:依次假设法(最容易想到的方法)
    • 方法二 :逻辑推断法(较容易想到,速度最快,结构最简单)
  • 效果展现
  • 结语


前言

编程起因

最近刚刷到过一个有关逻辑判断的猜凶手的题目,于是想着能不能将其带入到无人生还1的背景中去重新设计一下这个题目,增强题目趣味性的同时还能更加好的锻炼我们的编程思维,于是有了这篇文章的设计。

项目介绍

情节简介

士兵岛上现在只剩下了四个人,眼看着桌上的小士兵只剩下了四个,四个人更加的诚惶诚恐,生怕下一个对应童谣死的就是自己,剩下的人分别是维拉教师,隆巴德队长,阿姆斯特朗医生以及布洛尔侦探(这里简用A,B,C,D进行标记)。为了避免单独被杀,四个人聚集在了一起,他们一边互相猜忌,一边讨论谁最有可能伪造了自己独处时的经历,因为这个人要么和欧文先生串通一气,要么就是欧文先生本人。

讨论内容

讨论内容简记如下:
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说。

找出凶手

假设二刷《无人生还》的你依稀记得这四个人中有三个说的是假话一个说的是真话,那么伪造经历的到底是谁呢?请运用编程来查出这个人。


设计思路

1.整体逻辑

方法一

运用依次假设法以此判断每个人是伪造者时三假一真的条件判断是否为真。

方法二

运用逻辑推断法直接得出要么D是伪造者,要么D不是,在依次判断条件,真就是D,假就是C。

2. 具体逻辑

方法一

设置四个变量代表凶手,分别将其赋值为0,从a开始一次通过赋值为1来假设伪造经历的人,在运用分支语句将四句话变成判断语句的形式在相加,如果三真一假成立的话则和为1,判断其和是否为3,若为3,则找出凶手,若不为一,则将a赋值回1洗清a的嫌疑后再继续假设下一个人。

方法二

既然四个人说的话中三真一假,仔细观察可知C和D的话互相矛盾,C说D是伪造经历的那个人,D说C说谎,那么只要假设D是否是这个人即可,如果D是时条件判断也是真就是D,反之就是C。


代码展示

方法一:依次假设法(最容易想到的方法)

#include <stdio.h>
int main()
{int a = 0, b = 0, c = 0, d = 0;if (a = 1)//假设伪造者是A{if (((a != 1) + (c == 1) + (d == 1) + !(d == 1)) == 3)//判断是否符合三假一真条件{printf("The killer is A.\n");}else{a = 0;}}if (b = 1){if (((a != 1) + (c == 1) + (d == 1) + !(d == 1)) == 3){printf("The killer is B.\n");}else{b = 0;}}if (c = 1){if (((a != 1) + (c == 1) + (d == 1) + !(d == 1)) == 3){printf("The killer is C.\n");}else{c = 0;}}if (d = 1){if (((a != 1) + (c == 1) + (d == 1) + !(d == 1)) == 3){printf("The killer is D.\n");}else{d = 0;}}return 0;
}

方法二 :逻辑推断法(较容易想到,速度最快,结构最简单)

#include <stdio.h>
int main()
{int a = 0, b = 0, c = 0, d = 0;if (d = 1)//假设伪造者是D{if (((a != 1) + (c == 1) + (d == 1) + !(d == 1)) == 3)//判断是否符合三假一真条件{printf("The killer is D.\n");//是则伪造者是D}else{printf("The killer is C.\n");//不是伪造者只能是C}}return 0;
}

效果展现

效果展现


结语

以上就是我对无人生还这个项目的解题思路,代码以及效果展示,那么你猜到凶手是谁了吗?😄希望对你的C语言学习有所帮助!作为刚学编程的小白,可能在一些设计逻辑方面有些不足,欢迎评论区进行指正!看都看到这了,点个小小的赞或者关注一下吧(当然三连也可以~),你的支持就是博主更新最大的动力!让我们一起成长,共同进步!


  1. 《无人生还》(And Then There Were None,1939年发行时书名为Ten Little Niggers,后改为Ten Little Indians),是英国推理小说作家阿加莎·克里斯蒂创作的长篇小说,出版于1939年。
    该小说讲述了一起发生在荒岛之上的连环谋杀案。《无人生还》融合了犯罪小说之外的故事类型。如文中对不少人物,特别是布伦特小姐和维拉的心理活动有着大段描写,有些段落接近意识流小说的写法。 ↩︎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/86264.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Weblogic反序列化漏洞(CVE-2018-2628/CVE-2023-21839复现)

内容目录 Weblogic反序列化漏洞(CVE-2018-2628/CVE-2023-21839)weblogic中间件CVE-2018-2628漏洞描述影响版本漏洞复现修复方案 CVE-2023-21839漏洞描述影响版本漏洞复现修复方案 Weblogic反序列化漏洞(CVE-2018-2628/CVE-2023-21839) weblogic中间件 WebLogic是美国Oracle公司…

在给应用ASO优化时要注意些什么

应用名称是搜索引擎优化和转化率优化非常重要的元素。用户在搜索结果页面中看到我们的应用程序&#xff0c;这是他们决定是否想要更多地了解我们应用的地方。当用户已经在查看产品页面时&#xff0c;应用程序名称也会影响转化率&#xff0c;如果列表元数据有吸引力&#xff0c;…

代码随想录二刷day36

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、力扣435. 无重叠区间二、力扣763. 划分字母区间三、力扣56. 合并区间 前言 一、力扣435. 无重叠区间 class Solution {public int eraseOverlapIntervals(…

异步回调

Future 设计的初衷&#xff1a;对将来的某个事件的结果进行建模 package com.kuang.future;import com.kuang.pc.C;import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; import java.uti…

静态路由与默认路由配置

实验原理&#xff1a; 路由分类 &#xff08;1&#xff09;根据目的网络的不同&#xff0c;路由可以划分为&#xff1a; 特定网络路由&#xff1a;目的网络为目的主机所在网络的IP地址&#xff0c;其子网掩码表示的前缀长度为32位&#xff08;对于IPv4地址&#xff09;&…

priority_queue 模拟与用法

priority_queue 用法 priority_queue priority_queue 模拟 #include <vector> namespace sjy {//仿函数 1template <typename T>class Less{public:bool operator()(const T& x, const T& y){return x < y;}};//仿函数 2template <typename T>…

一些常见的算法

常见算法有很多种&#xff0c;以下列举了一些常见的算法&#xff1a; 堆排序算法&#xff1a;是一种利用堆这种数据结构所设计的一种排序算法。哈希算法&#xff1a;哈希算法将任意长度的二进制值映射为较短的固定长度的二进制值&#xff0c;这个小的二进制值称为哈希值&#…

stm32_标准库_中断_按键点灯|蜂鸣器

配置流程 需要对AFIO、EXTI、NVIC、GPIOB进行配置形成通路将中断连接至CPU APB2总线连接的寄存器 LED灯代码 #include "stm32f10x.h" // Device header #include "Delay.h"GPIO_InitTypeDef GIPO_InitStruct;//结构体配置GPIO EXTI_InitTypeDef EXTI_…

算法 数据流的中位数-(大顶堆小顶堆+冒泡排序)

牛客网: BM48 题目: 得到数据流的中位数 思路: (1) 冒泡排序: 每次插入元素时&#xff0c;进行冒泡排序&#xff0c;将当前值与前一值比较&#xff0c;当前值较小时与前一元素交换&#xff0c;直至不小于前一元素时结束。 (2) 大小顶堆: 设置两个堆min为大顶堆(最大值在堆顶…

WPS文件找回怎么做?文件恢复,4个方法!

“我平时习惯了用wps来记录一些工作心得或重点&#xff0c;不知道什么原因&#xff0c;有些很重要的文件莫名不见了&#xff0c;有什么方法可以帮我找回wps文件吗&#xff1f;” wps作一个常用的办公软件&#xff0c;有效的提高了我们的工作效率。在日常使用wps时&#xff0c;可…

非常详细的git-flow分支管理流程配置及使用

非常详细的git-flow分支管理流程配置及使用。 git-flow有两个涵义,一个是指软件开发领域的版本管理流程Gitflow。另一个是指git命令工具git flow。 目前业界主流的版本管理流程是Gitflow 和 trunk-based。 Gitflow流行的比较早。但是目前的流行度要低于 trunk-based模式工作…

RocketMQ 相关文档

官方文档&#xff1a;为什么选择RocketMQ | RocketMQ (apache.org) Rocketmq 5.x架构介绍文章&#xff1a;终于&#xff01;RocketMQ发布5.0版本&#xff1a;架构大重构&#xff0c;代码变更比例高达60%-腾讯云开发者社区-腾讯云 (tencent.com)

爬虫中出现OSError: [WinError 193] %1 不是有效的 Win32 应用程序。

如果出现了 OSError: [WinError 193] %1 不是有效的 Win32 应用程序。那可能是你的Chromedriver版本和Chrome版本不一致。 我是花钱买的&#xff0c;这里免费分享给大家Chrome116版本对应的ChromeDriver 资源发布了&#xff0c;如果有需要私信我要吧

debian安装qq及更新

文章目录 一、安装二、卸载QQ三、更新 一、安装 1.下载Linux QQ安装包 wget https://dldir1.qq.com/qqfile/qq/QQNT/c6032ac7/linuxqq_3.1.0-9332_amd64.deb2.安装软件包 apt install ./linuxqq_3.1.0-9332_amd64.deb3.终端启动QQ qq二、卸载QQ apt remove linuxqq三、更新…

qt功能自己创作

按钮按下三秒禁用 void MainWindow::on_pushButton_5_clicked(){// 锁定界面setWidgetsEnabled(ui->centralwidget, false);// 创建一个定时器&#xff0c;等待3秒后解锁界面QTimer::singleShot(3000, this, []() {setWidgetsEnabled(ui->centralwidget, true);;//ui-&g…

MySQL8.0版安装教程 + Workbench可视化配置教程(史上最细、一步一图解)

文章目录 一、安装MySQL1、选择版本&#xff0c;点击“Download”进行下载2、双击下载好的安装包&#xff0c;点击运行3、选择安装类型为“Custom”4、依次进行选择&#xff0c;选到MySQL Servers 8.0.33 -X64&#xff0c;点击向右的箭头5、选中MySQL Servers 8.0.33 -X64&…

Mysql004:用户管理

前言&#xff1a;本章节讲解的是mysql中的用户管理&#xff0c;包括&#xff08;管理数据用户&#xff09;、&#xff08;控制数据库的访问权限&#xff09;。 目录 1. 查询用户 2. 创建用户 3. 修改用户密码 4. 删除用户 5. 权限控制 1. 查询用户 在mysql数据库中&#xff0…

【通信误码】python实现-附ChatGPT解析

1.题目 通信误码 时间限制: 1s 空间限制: 32MB 限定语言: 不限 题目描述: 信号传播过程中会出现一些误码,不同的数字表示不同的误码ID, 取值范围为1~65535,用一个数组“记录误码出现的情况。 每个误码出现的次数代表误码频度, 请找出记录中包含频度最高误码的最小子数组长度…

OpenCV自学笔记二十二:绘图及交互

一、绘图基础 下面是关于OpenCV绘图基础函数的说明和举例&#xff1a; 1. cv2.line()&#xff1a;绘制直线 cv2.line(img, pt1, pt2, color, thickness, lineType) - img: 需要绘制直线的图像。 - pt1: 直线起始点坐标。 - pt2: 直线结束点坐标。 - color: 直线颜色&…