c精彩编程挑战高手4

来源:百度知道 编辑:UC知道 时间:2024/06/23 08:46:43
四名嫌疑犯甲、乙、丙、丁,其中只有一名窃贼,在回答破案人员时要么说实话,要么说谎:
甲:乙没有偷,是丁偷的
乙:我没有偷,是丙偷的
丙:甲没有偷,是乙偷的
丁:我没有偷
问到底谁是窃贼?
以最简代码编写。

#include<stdio.h>

void main()
{
int i,j,a[4]={NULL}; /*将第i个人设置为1表示窃贱,其余为0*/
char result;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
if(j==i)a[j]=1;
else a[j]=0;
if((a[3]+a[1]==1)&&(a[1]+a[2]==1)&&(a[0]+a[1]==1))
{
printf("窃贼是:"); /*成立*/

for(j=0;j<=3;j++)
if(a[j])result=j+'A';

switch(result)
{
case 'A':printf("甲\n");break;
case 'B':printf("乙\n");break;
case 'C':printf("丙\n");break;
case 'D':printf("丁\n");break;
}

}
}
}