/* *?有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 ;
}