c语言经典小程序例题:谁是凶手
题目:
警察审问4名窃贼嫌疑犯。现在已知,这4人当中仅有一名是窃贼,还知道这4个人中的每个人要么是诚实的,要么总是说谎。
这4个人给警察的回答如下。
甲说:“乙没有偷,是丁偷的。”
乙说:“我没有偷,是丙偷的。”
丙说:“甲没有偷,是乙偷的。”
丁说:“我没有偷。”
请根据这4个人的回答判断谁是窃贼。
思路:
从问题的趣味描述来看,这道题很显然是一道逻辑题,题目里,4个人中,三个人都对另外认为的两个人进行了指证。
当然,我们知道,这里面一定有伪证,所以接下来,我们根据四个人的描述设计相应的公式。
我们假定甲乙丙丁分别为A,B,C,D,根据他们的描述分别代入
第一种情况:
甲说:“乙没有偷,是丁偷的。” —— B+D=1
第二种情况:
乙说:“我没有偷,是丙偷的。” —— B+C=1
第三种情况:
丙说:“甲没有偷,是乙偷的。” —— A+B=1
第四种情况:
丁说:“我没有偷。” —— A+B+C+D=1
这里我们等于1的目的不是为了求答案,而是表示可疑的意思。
前三种情况下
B+D==1 && B+C==1 && A+B==1
第四种情况,丁的话表示每个人都有嫌疑,而且嫌疑平均,我们可以理解为
if(i == 1){A=0; /*甲不是窃贼,测试乙是否是窃贼*/B=1;}if(i == 2){B=0; /*甲乙均不是窃贼,测试丙是否是窃贼*/C=1;}if(i == 3){C=0; /*甲乙丙都不是窃贼,测试丁是否是窃贼*/D=1;}
答案
因此,我们的完整代码如下:
//警察审问4名窃贼嫌疑犯。现在已知,这4人当中仅有一名是窃贼,还知道这4个人中的每个人要么是诚实的,要么总是说谎。//这4个人给警察的回答如下。//甲说:“乙没有偷,是丁偷的。”
//乙说:“我没有偷,是丙偷的。”
//丙说:“甲没有偷,是乙偷的。”
//丁说:“我没有偷。”#include<stdio.h>
int main()
{int i, A=1, B=0, C=0, D=0; /*先假定甲是窃贼*/for(i=1; i<=4; i++)if(B+D==1 && B+C==1 && A+B==1) /*测试甲乙丙丁谁是窃贼,符合该条件的即为窃贼*/break;else{if(i == 1){A=0; /*甲不是窃贼,测试乙是否是窃贼*/B=1;}if(i == 2){B=0; /*甲乙均不是窃贼,测试丙是否是窃贼*/C=1;}if(i == 3){C=0; /*甲乙丙都不是窃贼,测试丁是否是窃贼*/D=1;}}/*输出结果*/printf("判断结果:\n");if(i == 1)printf("甲是窃贼\n");if(i == 2)printf("乙是窃贼\n");if(i == 3)printf("丙是窃贼\n");if(i == 4)printf("丁是窃贼\n");return 0;
}
好啦,答案就出来啦!真诚的希望我的回答能够帮助到正好遇到这个问题的同学。
c语言经典小程序例题:谁是凶手相关推荐
- c语言编写数据存储的游戏,c语言经典小程序和c语言编写的小游戏带注释(自动保存的).doc...
c语言经典小程序和c语言编写的小游戏带注释(自动保存的) 1.写一个定时?关机的小程?序,可以立即关?闭计算机,也可以一段?时间后关闭?计算机. #inclu?de #inclu?de #inclu? ...
- 常用c语言小程序,c语言经典小程序汇总大全
网上有很多的人说编程有多么多么无聊,其实:不要管别人怎么说,别人说什么,做你自己喜欢做的事就好.坚持下来,你会发现编程的乐趣的.当然,如果你觉得学习编程语言很痛苦,坚持了一段时间后无果,南无果断放弃未 ...
- 夸奖人的C语言小程序,c语言10个经典小程序
[程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位.十位.个位的数字都是1.2.3.4.组成所有的排列后再去 掉不满足条件的排列. ...
- java游戏小程序_javaCode 158个经典小程序,里面包含各种小游戏代码,能提高初学者 趣,同事可以从中学习 Games 246万源代码下载- www.pudn.com...
文件名称: javaCode下载 收藏√ [ 5 4 3 2 1 ] 所属分类: Games 开发工具: Java 文件大小: 543 KB 上传时间: 2015-10-25 下载次数: ...
- 开发语音录入_语言翻译小程序app开发 解决了人们的语言障碍问题
随着经济的发展,人们经济水平的提高,促进了国际交流越来越频繁,人们出国的次数也是越来越多.但是语言交流也是日常的障碍,给诸多的人带来不便.出国旅游要是语言不通还会影响旅游质量.语言翻译小程序的开发,便 ...
- c语言有啥简单的小程序,c语言-简单小程序-简单算法
<c语言-简单小程序-简单算法>由会员分享,可在线阅读,更多相关<c语言-简单小程序-简单算法(19页珍藏版)>请在人人文库网上搜索. 1.以下小程序都在 TC2.0 中运行通 ...
- c语言经典游戏,C语言——经典小游戏——打砖块
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 C语言--经典小游戏--打砖块 玩法:按A与D控制球拍的移动,按S暂停游戏 百度网盘下载:http://pan.baidu.com/s/1o64ECTc ...
- c语言50个小程序,C语言50小程序.doc
C语言50小程序 一 基础部分: 输入1~10之间的一个数字,输出它对应的英文单词. /* Note:Your choice is C IDE */ #include "stdio.h&qu ...
- 日本发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个,根据供词.写一个程序判定谁是凶手.
日本发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个.以下是供词. A说:不是我 B说:是C C说:是D D说:C在胡说 已知3个人说了真话,1个人说的是假话. 现根据这些信息,写一个程 ...
最新文章
- [Android]ListView性能优化之视图缓存
- 破2.5万亿美元,全球市值第一「巨无霸」尾随Meta杀入元宇宙!
- 员工考勤信息管理小程序
- 我爸和在我们小区里的一位老大爷
- Javascript入门视频教程
- bash-shell高级编程-变量的赋值
- python3解释器执行long(10)的结果为_Python3解释器执行'AB2C3D'.lower().title()的结果是( )。...
- 在欲而无欲,居尘不染尘
- 唐山师范学院计算机二级报名,2017年3月唐山师范学院计算机等级考试报名时间(河北)...
- C语言变量未赋初值时,输出为乱七八糟解释
- gitlab搭建之互备模式
- JS中setAttribute的兼容性问题(摘自leejersey)
- JDK+MyEclipse+Tomcat的配置(修改Tomcat 6.x的端口)
- 系统学习NLP(十九)--文本分类之FastText
- 【酷玩集团】文档管理手册
- atitit.研发企业与团队文化的结构框架 企业文化建设方案3.0
- word 条件多项式公式对齐
- 锐捷S6248三层交换机syslog配置
- java沙漏_(java)五大常用算法
- 计算机网络基础9:IPV6寻址方法