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;
}