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

news2024/11/19 21:30:50

标头
无人生还


  • 文章主题:无人生还🔥
  • 所属专栏: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 (a = 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.coloradmin.cn/o/1032009.html

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

相关文章

Mojo编程语言是AI人工智能的新的编程语言

Mojo是Chris Lattner的创业公司Modular开发的一种新的编程语言&#xff0c;旨在统一AI基建和异构计算。Mojo被认为是Python的超集&#xff0c;兼容Python生态&#xff0c;但添加了系统编程和编译期优化的特性&#xff0c;以提高性能和部署效率。Mojo基于MLIR&#xff0c;可以支…

RockTree TOKEN2049 Party爆火,一场千亿规模的“超级聚会”

今年 9 月 11 日至 17 日期间&#xff0c;在新加坡举办的 TOKEN2049 大会&#xff0c;成为了今年同类活动中规模最大、最火爆的一次 Web3 行业盛会。据悉&#xff0c;本届 TOKEN2049 迎来了来自 3,500 多个组织超 10,000 名与会者&#xff0c;并有一众重磅加密行业嘉宾出席会议…

Android 混淆使用及其字典混淆(Proguard)

1.使用背景 ProGuard能够通过压缩、优化、混淆、预检等操作&#xff0c;检测并删除未使用的类,字段,方法和属性&#xff0c;分析和优化字节码&#xff0c;使用简短无意义的名称来重命名类&#xff0c;字段和方法。从而使代码更小、更高效、更难进行逆向工程。 Android代码混淆…

实时数仓混沌演练实践

一、背景介绍 目前实时数仓提供的投放实时指标优先级别越来越重要&#xff0c;不再是单独的报表展示等功能&#xff0c;特别是提供给下游规则引擎的相关数据&#xff0c;直接对投放运营的广告投放产生直接影响&#xff0c;数据延迟或者异常均可能产生直接或者间接的资产损失。…

【项目总结】C++ 云盘

项目介绍 本项目是一款分布式云存储软件&#xff0c;旨在提供强大的文件存储和共享功能。 因为要运行高并发量的访问&#xff0c;所以进行了服务器的集群&#xff0c;也就是要有多台web服务器&#xff0c;每台web服务器中部署相同的程序&#xff0c;为了让这几台web服务器的负…

【VSCode 插件商城无法搜索到插件的解决方法】

背景 因为本地电脑安装的开发软件较多&#xff0c;导致电脑变得很卡&#xff0c;所有申请一个虚拟机作为开发机&#xff0c;安装完VScode之后发现无法搜索到插件&#xff0c;于是便想把本地电脑上VScode装好的插件复制到虚拟机上。 实现 VSCode 的插件存在 【C/用户/用户名/…

关于ubuntu设置sh文件开机自启动python3和sudo python3问题

关于ubuntu设置sh文件开机自启动python3和sudo python3问题 说明系统为 ubuntu22.04python是python3.10.12ros系统为ros2 humble 背景解决方法补充 说明 系统为 ubuntu22.04 python是python3.10.12 ros系统为ros2 humble 背景 将一个py文件设置为开机自启动&#xff0c;服…

如何对pdf文件进行压缩?

如何对pdf文件进行压缩&#xff1f;一般来说&#xff0c;PDF文件里面一般会包含大量的图像、文本和其他类型的独裁&#xff0c;这使得它们的文件大小相对于其他文档要大得多&#xff08;其实主要是pdf文件里面包含的大量图片&#xff0c;尤其是高清拖&#xff09;。由于pdf文件…

Tiny11:极限精简的Windows 11系统镜像,老旧电脑的福音(移除Windows11安装要求限制,且支持苹果ARM架构CPU,全版本资源下载)

文章目录 优点和适用场景系统下载系统版本说明系统安装Tiny11 设置安装简体中文语言方法Windows 11,作为微软最新一代操作系统,固然有其强大的功能和卓越的性能,但有时,更轻、更小、更快速的需求也在用户的考虑范围之内。这就是Tiny11存在的理由。Tiny11是基于Windows 11的…

【收藏】如何最快取得NISP二级和CISP

【收藏】如何最快取得NISP二级和CISP &#x1f449;今天小编来给大家讲解一下如何最快的取得NISP二级和CISP证书 ✅我们从如下几个方面为大家讲解&#xff1a; &#x1f53a;报名条件 &#x1f53a;考试形式 &#x1f53a;考试题型 &#x1f53a;如何备考 &#x1f53a;证书用途…

Wish下单支付教程,测评养号需要满足哪些技术要点?

Wish是2011年成立的一家高科技独角兽公司&#xff0c;有90%的卖家来自中国&#xff0c;也是北美和欧洲最大的移动电商平台。 它使用一种优化算法大规模获取数据&#xff0c;并快速了解如何为每个客户提供最相关的商品&#xff0c;让消费者在移动端便捷购物的同时享受购物的乐趣…

C# VS CS1752解决办法

代码报错&#xff1a; Severity Code Description Project File Line Suppression State Error CS1752 项目文件行抑制状态 错误cs1752无法嵌入互操作类型“ActUtlTypeClass”。 将引用的dll打开其属性 选择属性&#xff0c;将嵌入互操作类型改为false即可。

Java多线程篇(4)——wait/notify和park/unPark

文章目录 Object - wait/notifyobject.wait()object.notify() LockSupport - park/unparkLockSupport.park()LockSupport.unPark() Object - wait/notify object.wait() ObjectSynchronizer::wait 从这段代码可以得到两个信息 1&#xff1a;wait() 底层是对象锁&#xff08;就…

You must install .NET Desktop Runtime to run this application

使用.Net6 写了个小程序&#xff0c;放到另一台机器上报这个错。 安装 x64的Desktop Runtime 安装 x86的Desktop Runtime 安装 x64的 .Net6 SDK 安装 x86的 .Net6 SDK 均无效&#xff0c;还是报这个错。 最后发现问题是因为生成目录里有一个 xxx.runtimeconfig.json 的文…

23年下考前须知-软考中级信息安全工程师

信息安全工程师主要涉及计算机信息安全方面&#xff0c;在计算机软硬件、网络、应用相关领域从事安全系统设计、安全产品开发、产品集成、信息系统安全检测与审计等方面工作&#xff0c;服务单位可以是国家机关、企事业单位及科研教学单位等。 一、考试报名时间 信安考试一年…

‘Xcode Unable to execute command: Segmentation fault: 11‘

概述, Xcode Unable to execute command: Segmentation fault: 11 解决方案, 添加: Build Setting -> Other Linker Flags -> -ld64 延伸, -ld64是什么, 在 Xcode 的 Build Setting 中&#xff0c;Other Linker Flags&#xff08;其他链接器标志&#xff09;用于向链…

c++ 多态的

#include <iostream> #include <string.h> using namespace std;//含有纯虚函数为抽象类&#xff0c;无法实例化 class AbstractDrinking { public://煮水virtual void Boil() 0;//冲泡virtual void Brew() 0;//导入杯子中virtual void PourInCup() 0;//加入辅料…

doxygen c++ 语法

c基本语法模板 以 /*! 开头, */ 结尾 /*!\关键字1\关键字2 */1 文件头部信息 /*! \file ClassA.h* \brief 文件说明 定义了类fatherA* \details This class is used to demonstrate a number of section commands.* \author John Doe* \author Jan Doe* \v…

C++11的一些新特性|右值引用|STL中的一些变化

文章目录 1、{}初始化 2、声明 2.1auto 2.2、decltype 2.3、nullptr 2.4.范围for循环 3、STL中的一些新变化 3.1.新容器 3.2容器中的一些新方法 4.右值引用和移动语义 左值引用和右值引用 左值引用的短板&#xff1a; 右值引用使用场景和意义&#xff1a; move的作…

干货:数据仓库基础知识(全)

1、什么是数据仓库&#xff1f; 权威定义&#xff1a;数据仓库是一个面向主题的、集成的、相对稳定的、反映历史变化的数据集合&#xff0c;用于支持管理决策。 1&#xff09;数据仓库是用于支持决策、面向分析型数据处理&#xff1b; 2&#xff09;对多个异构的数据源有效集…