C语言达成时辰候平日做的智力测验题

用C编制程序 预测比赛结果/通过口供决断真凶

1.

5位选手参预了10米台跳水竞赛,有人让他俩推断比赛结果

A选手说:B第一,我第三。

B选手说:我第二,E第四。

C选手说:我第一,D第二。

D选手说:C最后,我第三。

E选手说:我第四,A第一。

比赛结束后,每位选手都说对了四分之二,请编制程序分明竞赛的排名。

 

#include<stdio.h>
#include<stdlib.h>

int main()
{
 int a, b, c, d, e;
 int num = 0;
 for (a = 1; a <= 5; a++)
  for (b = 1; b <= 5; b++)
   for (c = 1; c <= 5; c++)
    for (d = 1; d <= 5; d++)
     for (e = 1; e <= 5; e++)
     {
      if (a != b && a != c && a != d && a != e && b != c && b != d && b != e && c != d && c != e && d != e)
      {
       if ((1 == b&&3 != a) || (2 != b && 3 == a))
        if((2 == b && 4 != e)||(2 != b && 4 == e))
         if((1 == c && 2 != d)|| (1 != c && 2 == d))
          if ((5 == c && 3 != d) || (5 != c && 3 == d))
           if ((4 == e && 1 != a) || (4 != e && 1 == a))
           {
            printf("a=%d b=%d c=%d d=%d e=%d", a, b, c, d, e);
            printf(" ");
           }
      }
     }
 system("pause");
 return 0;
}

 

2.

某地发生了一件谋杀案,警察通过排查显明杀人刺客必为4个嫌犯的叁个。以下为4个嫌犯的供词。

A说:不是我。

B说:是C。

C说:是D。

D说:C在胡说

已知3个人说了真话,1个人说的是谎话。

前些天请依据那一个消息,写二个主次来显明究竟何人是杀手。

 

#include<stdio.h>
#include<stdlib.h>

int main()
{
 int a, b, c, d;
 for (a = 0; a < 2; a++)
  for (b = 0; b < 2; b++)
   for (c = 0; c < 2; c++)
    for (d = 0; d < 2; d++)
    {
     if (0 == a && 1 == c && 1 == d && 0 != d && a + b + c + d == 1)
      printf("a=%d b=%d c=%d d=%d", a, b, c, d);
     if (0 == a && 1 == c && 1 != d && 0 == d && a + b + c + d == 1)
      printf("a=%d b=%d c=%d d=%d", a, b, c, d);
     if (0 == a && 1 != c && 1 == d && 0 == d && a + b + c + d == 1)
      printf("a=%d b=%d c=%d d=%d", a, b, c, d);
     if (0 != a && 1 == c && 1 == d && 0 == d && a + b + c + d == 1)
      printf("a=%d b=%d c=%d d=%d", a, b, c, d);
    }
 system("pause");
 return 0;
}

 

预测比赛结果/通过口供判别真凶 1.
5位选手到场了10米台跳水竞技,有人让他俩猜测比赛结果A选手说:B第一,作者第三。 B选手说…

C语言达成之运动员跳水排名难点

5位选手加入了10米台跳水比赛,有人让他俩臆想比赛结果

A选手说:B第一,我第三。

B选手说:我第二,E第四。

C选手说:我第一,D第二。

D选手说:C最后,我第三。

E选手说:我第四,A第一。

比赛甘休后,每位选手都说对了四分之二,请编制程序鲜明比赛的排行。

 

代码完毕:

#include <stdio.h>
int main()
{
 int a=0,b=0,c=0,d=0,e=0;
 int flag=0;
 int ret=0;
 for(a=1;a<=5;a++)
 {
  for(b=1;b<=5;b++)
  {
   for(c=1;c<=5;c++)
   {
    for(d=1;d<=5;d++)
    {
     for(e=1;e<=5;e++)
     {
      if((1==(b==1)+(a==3))&&
         (1==(b==2)+(e==4))&&
         (1==(c==1)+(d==2))&&
         (1==(c==5)+(d==3))&&
         (1==(e==4)+(a==1)))
      {
       flag=0;
       ret=0;
       ret|=(1<<(a-1));
       ret|=(1<<(b-1));
       ret|=(1<<(c-1));
       ret|=(1<<(d-1));
       ret|=(1<<(e-1));
       while(ret)
       {
        if(ret%2==0)
        {
         flag=1;
         break;
        }
        ret/=2;

       }
       if(flag==0)
        {
         printf("a=%d b=%d c=%d d=%d e=%d\n",a,b,c,d,e);
        }
      }
     }
    }
   }
  }
 }
 return 0;
}

 

结果是:a=2 b=1 c=1 d=3 e=4

5位选手加入了10米台跳水比赛,有人让他们估计比赛结果A选手说:B第一,作者第三。 B选手说:作者第二,…

C语言落成小时候时常做的智慧测量试验题

   
上面包车型客车是两道面试题,时辰候经常拜见到这种看似的主题材料,不过用C语言实现,确实没那么轻松想到,特别是对自身这种接触C语言仅仅一年的新人。

     话十分的少说, 先上题………..

1、

 

 

5位选手出席了10米台跳水比赛,有人让她们揣摸比赛结果

A选手说:B第一,我第三。

B选手说:我第二,E第四。

C选手说:我第一,D第二。

D选手说:C最后,我第三。

E选手说:我第四,A第一。

竞赛截止后,每位选手都说对了二分之一,请编制程序分明比赛的排行。

 

#include<stdio.h>

int main()
{
 int a = 0;
 int b = 0;
 int c = 0;
 int d = 0;
 int e = 0;
 for (a = 1; a <= 5; a++)
 {
  for (b = 1; b <= 5; b++)
  {
   for (c = 1; c <= 5; c++)
   {
    for (d = 1; d <= 5; d++)
    {
     for (e = 1; e <= 5; e++)
     {
      if (((b == 1) + (a == 3) == 1) && ((b == 2) + (e == 4) == 1) && ((c == 1) + (d == 2) == 1) && ((c == 5) + (d == 3) == 1) && ((e == 4) + (a == 1) == 1))
      {
       printf("A:第%d名  B:第%d名  C:第%d名  D:第%d名  E:第%d名\n",a,b,c,d,e);
      }
     }
    }
   }
  }
 }

 system("pause");
 return 0;
}

 

 

 2、

扶桑某地产生了一件谋杀案,警察通过排查明确杀人杀手必为4个嫌疑犯的贰个。以下为4个嫌犯的供词。

A说:不是我。

B说:是C。

C说:是D。

D说:C在胡说

已知3个人说了心声,1个人说的是假话。

明天请依据那几个新闻,写三个顺序来分明终归哪个人是杀人犯。

 

#include<stdio.h>

int main()
{
 int  kill = 0;
 for (kill = 'a'; kill <= 'd'; kill++)
 {
  if ((kill != 'a') + (kill == 'c') + (kill == 'd') + (kill != 'd') == 3)
  {
   printf("杀手是%c\n",kill);
  }
 }
 system("pause");
 return 0;
}

 

 

 

 

看完事后,才发掘并从未团结想的那么复杂。总是重复纠结一些标题,导致没办法去想完全的方式。上边作者就轻松总括一下本人化解那类实际难题的点子吗。

     1、  
让C语言化解实际难点,其实它是刻意笨的,它不可能去深入分析逻辑找走后门(可能说大家还不会用它找走后门),所以
  while   或    for  
 循环语句是要求的,它得把全体望的情状三个二个列出来进行深入分析,看是还是不是适合它的渴求,再把符合供给的情事
  printf  出来。

       
第一题,推断四人的排名,那么输出结果一定是三个人,每一种人的名次恐怕是1-5,那么就有25种状态,嵌套5个for循环语句能够兑现这一职能。

     
 第二题,供给决断何人是killer,很醒目,程序只必要输入killer是哪个人就能够,也便是一位,而别的的人就一定是非亲非故人。由此,有4个狐疑人,就须求4次巡回,每回只要某一人为killer,叁回巡回就足以做到列出何人是killer的持有情况。(由于两个人是abcd,所以定义了int型变量,从’a’到‘d’,字符型在内部存款和储蓄器里是以整型存储的。)

       2、列出装有情况之后将在对具有景况开展判定,   if  
语句,判别是还是不是满意条件。到了第四个困难,条件怎么写。

       
第一题,四人,每种人说的都有一真一假,也等于说,壹个人说两句话唯有一句是真心话,“A选手说:B第一,我第三。”四个条件分别是(b==1)(a==3),中间怎么总是呢? 

                    &&:都为真,结果为1          
 ||:有二个为真结果就为1   而
!考虑二种可能的话程序又会很复杂。这里用先+再判定是或不是==1,(b==1)+(a==3)==1,七个原则独有叁个为真是结果为真,必要三个人说的话都知足,所以八个语句之间用&&连接。只要用循环语句列出来的状态还要满足四个人说的话(独有一句话是真话),则这种境况切合题意,直接出口,然后重新判定下一种境况。

     
 第二题,多人说的话唯有三人是实在,计算量约等于独有首先题的五分之二,只要剖断八个满足多个原则,第多少个不知足就能够,而不用八个用&&再连接。

         if ((kill != ‘a’) + (kill == ‘c’) + (kill == ‘d’) + (kill !=
‘d’) ==
3)三个人说的多种情形相加,结果特别三时,表明只满意八个规范化,第多少个不满足,当某二个疑凶是killer时
 if  语句成立,则该疑惑人明确为killer,输出。

上边包车型地铁是两道面试题,小时候有时会看出这种近乎的难题,不过用C语言达成,确实没那么轻便想到,…

5位选手参与了10米台跳水竞赛,有人让她们揣度比赛结果
A选手说:B第一,我第三。
B选手说:我第二,E第四。
C选手说:我第一,D第二。
D选手说:C最后,我第三。
E选手说:我第四,A第一。
竞赛结束后,每位选手都说对了百分之五十,请编程明确比赛的排名。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

CopyRight © 2015-2020 金沙中心城 All Rights Reserved.
网站地图xml地图