谁是凶手?

  我看了一些循环结构,像if,while之类的,让我觉得一般的一重循环是挺简单的,但一旦涉及到二三重的循环嵌套就很让我头疼了。作为一个女生,逻辑关系一般都或多或少的有所欠缺,可即便是这样,循环结构却是C语言程序中很基础重要的一环,我只有多做一些来弥补自身的缺陷。
  我看到一个很有趣的题,试问谁是凶手,现有A,B,C,D四个嫌疑人,A说:不是我;B说:是C;C说:是D;D说:C在胡说。其中有一个说了假话,而这个就是凶手!
  这种就是循环中的选择结构,四个人有一个人说了假话,那他那句话就是“0”,其余三个人的就是“1”,通过循环四次,判断A,B,C,D四人分别说了假话,从而计数当计数值为3时,就可找到凶手。
   其实这是程序员的思想,若是按照人的逻辑则是不要一遍又一遍的循环,看C和D说的话明显就有矛盾,只有判断两次就好了,可人的思想总有考虑不周全的时候,而全部列举出来就绝对不会错了,而只是要计算机计算,不算编程时间,绝对比人算的快!
    这就让我想到了小学时做奥数竞赛时,有一种死方法就是列举法,就像有一个变量苹果50个,就呼啦啦画50个苹果(当然这么让人捧腹大笑的情景是我在电视剧里看到的吐舌头)。计算机编程的精髓就在于简化人脑。
     下面给出这题的编程:
    
#include<stdio.h>

int main()
{
    char killer;
    int i;
    int sum;

    for (i=0; i<4; i++)
    {
         killer = 'A' + i;
    }
    sum = (killer != ‘A') + (killer == ‘C') + (killer == ‘D') + (killer != ‘D’);
    if (killer == 3)
    {
        printf("killer is %c\n",killer);
     }
     return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值