c语言照样解决脑筋急转弯

今天看到了一个脑筋急转弯问题  是这样说的 :ABCD四个人 其中有一个人是杀 犯 A说:杀人的不是他  B说:人是C杀的   C说:人是D杀的    D说:C在胡说   而这四个人中三人说的是真话 只有一个人说的是假话  请问谁是凶手? 

首先我是这么想的 只要作出假设ABCD任何一人说的是假话 其余三人便都是真话  将他们的话带进去思考 符合逻辑就能找到凶手是谁 同样的用c语言编程也能解决这道题哦:

 #include<stdio.h>
  2 int main()
  3 {
  4     char killer;
  5     int i;
  6     int sum;
  7     for(i=0;i<4;i++)
  8     {
  9         killer = 'A' + i;
 10         sum = (killer != 'A') + (killer == 'C') + (killer == 'D') + (killer != 'D');
 11         if (sum == 3)
 12         {
 13         printf("%c\n",killer);
 14         break;
 15         }
 16     }
 17     return 0;
 18 }

运行一下  结果就是C     

感觉特别神奇有木有 只要找到三个人说的是真话即最后结果3 就能判断出最后的凶手 符合逻辑 

希望以后学习c语言的时候多一点创造性思维 在学习中收获快乐 在快乐中享受学习

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值