您的位置:首页 > 编程语言 > C语言/C++

一道简单的推理题(日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个)

2016-11-14 22:08 549 查看
题目:日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。

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

          A说:不是我。

          B说:是C。

          C说:是D。
          D说:C在胡说

已知3个人说了真话,1个人说的是假话,现在请根据这些信息,写一个程序来确定到底谁是凶手。

 解:     首先,分析一下题目,嫌疑犯必定为A,B,C,D中其中的一人,因此我们可以定义一个变量 murder 来存储凶手,凶手从A开始到D结束,逐一判断条件是否成立,在判断时可以用ASCII值 从 65到68 依次表示凶手。找到符合条件的,即为凶手。

以下为c语言程序:
#include <stdio.h>
int main()
{
int murder;
for (murder='A'; murder<='D'; murder++)
{
if (((murder!='A')+(murder=='C')+(murder=='D')+(murder!='D')) == 3)    //三真一假,在if语句的,括号里为真结果为1,要是假结果为0。因此if括号  后面若成立,必定为三真一假,即必定等于3.
{
printf("murder is %c\n",murder);     //由于最终要输出凶手,为一个字符,%c可用输出字符

}

}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐