/*1. 5位运动员参加了10米台跳水比赛,有人让他们预测比赛结果
A选手说:B第一,我第三。
B选手说:我第二,E第四。
C选手说:我第一,D第二。
D选手说:C最后,我第三。
E选手说:我第四,A第一。
比赛结束后,每位选手都说对了一半,请编程确定比赛的名次。*/

#include <stdio.h>  
int main()  
{  
    for(int a=1; a<=5; a++)  
        for(int b=1; b<=5; b++)  
            for(int c=1; c<=5; c++)  
                for(int d=1; d<=5; d++)  
                    for(int 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);   
                            return 0;  
                        }     
    return 1;  
}  
/*2. 日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。以下为4个嫌疑犯的供词。
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。现在请根据这些信息,写一个程序来确定到底谁是凶手。
解:*/
int main()  
{  
    for(int killer='A'; killer <= 'D'; killer++)  
    {     
        if( (killer!='A') + (killer=='C') + (killer=='D') + (killer!='D') == 3 )   
        {     
            printf("The killer is %c.\n", killer);  
            return 0;  
        }     
    }     
  
    return 1;  
}