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

题目:日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为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;  
    }  

  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值