A说:不是我。B说:是C。C说:是D。D说:他胡说
转换一下,ABCD四个人的答案是: 非A,C ,D,非D。三个人有一个说假话,也就是说:
“
非A
C
D
非D
”
四个条件成立三个,也就是说
:非A + C + D + 非D = 3。
也知道只有一个人做好事不留名,所以只能是ABCD中的一个,可以枚举一下就知道了。
转换成代码就是:
void Who()
{
char X;
for (X = 'A'; X <= 'D'; X++) {
if ((X != 'A') + (X == 'C') + (X == 'D') + (X != 'D') == 3) {
printf("做好事的人是:%c.\n", X);
}
}
}
void main()
{
Who();
}