/*
算法提高 断案
问题描述
公安人员审问甲、乙、丙、丁四个嫌疑犯,已确知,这四个人当中仅有一人是偷窃者,
还知道这四个人的答话,要么完全诚实,要么完全说谎。在回答公安人员的问话中:
甲说:“乙没有偷,是丁偷的。”
乙说:“我没有偷,是丙偷的。”
丙说:“甲没有偷,是乙偷的。”
丁说:“我没有偷,我用的那东西是我家里的。”
请根据上述四人答话,判断谁是偷窃者。
输入格式:无输入。
输出格式:输出一个字符,表示偷窃者是谁,A表示甲,B表示乙,C表示丙,D表示丁。
*/
#include <stdio.h>
#include<stdbool.h>
void shuchu( int [] , int );
int main(void)
{
int sz[4] = { 0 } ;
shuchu( sz , 4 );
return 0;
}
void shuchu( int sz[] , int n )
{
int i;
for( i = 0 ; i < n ; i ++ )
{
sz[i] = 1 ;
int A , B , C , D ;
A = sz[1] != 1 && sz[3] == 1 ;
B = sz[1] != 1 && sz[2] == 1 ;
C = sz[0] != 1 && sz[1] == 1 ;
D = sz[3] != 1 ;
if( A != 1)
{
if ( !( sz[1] == 1 && sz[3] == 0 ) )
{
continue ;
}
printf("%c\n", 'A' + i );
return ;
}
if( B != 1 )
{
if ( !(sz[1] == 1 && sz[2] == 0) )
{
continue ;
}
printf("%c\n", 'A' + i );
return ;
}
if( C != 1 )
{
if ( !( sz[0] == 1 && sz[1] == 0 ) )
{
continue ;
}
printf("%c\n", 'A' + i );
return ;
}
sz[i] = 0 ;
}
}