(求解答思路)有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事
有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事.A说:不是我。
B说:是C。
C说:是D。
D说:他胡说。
已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人.
怎么用c语言编程来判断啊。以及设计思想是怎么样的??主要讲下思想,谢谢!
程序代码:#include<stdio.h>
int main()
{
enum Studnet{A,B,C,D};
enum Studnet y,ly;
for (y=A;y<=D;y++)
{
int t=0;
for (ly=A;ly<=D;ly++,t=0)
{
if (ly!=A)
t+=y!=A;
else
t+=y==A;
if (ly!=B)
t+=y==C;
else
t+=y!=C;
if (ly!=C)
t+=y==D;
else
t+=y!=D;
if (ly!=D)
t+=y!=D;
else
t+=y==D;
if (t==4)
break;
}
if (t==4)
break;
}
switch(y)
{
case A:printf("A\n");break;
case B:printf("B\n");break;
case C:printf("C\n");break;
case D:printf("D\n");break;
}
return 0;
}
