/* * 有4位同学中的一位做了好事,不留名,表扬信来了之后,
校长问这4位是谁做的好事。
A说:不是我
B说:是C
C说:是D
D说:C胡说
已知3个人说的真话,一个人说的假话,请找出谁做的好事
*/


/* *
File name:who.c
version  :0.1
Author   :Liu Qi
*/


// 返回做好事的人, 若返回'0'则无解
static   char  getKindMan()
{
    
int  trueAnswer  =   0 // 几条真话 ?
     char  kindMan  =   ' A ' // 做好事的人从A到D,一个一个测试
     for  ( ; kindMan  <=   ' D ' ; kindMan ++ )
    
{
        trueAnswer 
=  ( ' A '   !=  kindMan)  +  ( ' C '   ==  kindMan)
                    
+  ( ' D '   ==  kindMan)  +  ( ! ( ' D '   ==  kindMan));
        
if  ( 3   ==  trueAnswer)
            
break ;
    }


    
// 0表示无解,即没有找到做好事的人
     return   3   ==  trueAnswer  ?  kindMan :  ' 0 ' ;
}


int  main( void )
{
    printf(
" 做好事的人是:%c\n " , getKindMan());

    
return   0 ;
}