c语言趣味题目 求代码和答案 谢谢 !
有四位同学中的一位做了好事没留名,表扬信来了之后,校长问这四位是谁做的好事。?A说:不是我。?B说:是C。?C说:是D。?D说:他胡说已知三个人说的是真话,一个人说的是假...
有四位同学中的一位做了好事没留名,表扬信来了之后,校长问这四位是谁做的好事。
? A说:不是我。
? B说:是C。
? C说:是D。
? D说:他胡说
已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 展开
? A说:不是我。
? B说:是C。
? C说:是D。
? D说:他胡说
已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 展开
3个回答
展开全部
将四人用1, 2, 3, 4 编号,用枚举法解决
变量x 表示做好事者的编号序号,则x 从1到4,四个人所说的话分别写成:
a 说:x != 1
b 说:x == 3
c 说:x == 4
d 说:x != 4
当这4 个逻辑式值相加等于3 时,即为解答
#include <stdio.h>
int main( )
{
int x;
for (x = 1; x <= 4; ++ x)
if ((x != 1) + (x == 3) + (x == 4) + (x != 4) == 3)
printf("Is %c\n.", (char)(64 + x));
}
变量x 表示做好事者的编号序号,则x 从1到4,四个人所说的话分别写成:
a 说:x != 1
b 说:x == 3
c 说:x == 4
d 说:x != 4
当这4 个逻辑式值相加等于3 时,即为解答
#include <stdio.h>
int main( )
{
int x;
for (x = 1; x <= 4; ++ x)
if ((x != 1) + (x == 3) + (x == 4) + (x != 4) == 3)
printf("Is %c\n.", (char)(64 + x));
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询