一、谁做了好事?
某校有4位同学中的一位做了好事不留名。表扬信来了之后,校长问这4位是谁做的好事。
A说:不是我;
B说:是C;
C说:是D;
D说:他胡说。
已知3个人说的是真话,1个人说的是假话。请根据这些信息,编程找出做了好事的人。
【分析】可设置一个循环,循环4次,将4个同学的话表示成逻辑表达式,进行判断。
源代码:
#include <stdio.h>
int main()
{
int i;
int a,b,c,d;
for(i=1;i<=4;i++)
{
a=(i!=1);
b=(i==3);
c=(i==4);
d=(i!=4);
if(a+b+c+d==3)
printf("做好事的人是%c\n",'A'+i-1);
}
return 0;
}
程序截图: