用c语言实现贴纸问题:有A、B、C、D、E五人,每人额头上都帖了一张黑或白的纸。五人对 坐,每人都可以看到其他人额头上的纸的颜色。五人相互观察后, A说:“我看见有三人额头上帖的是白纸,一人额头上帖的是黑纸” B说:“我看见其他四人额头上帖的都是黑纸” C说:“我看见有一人额头上帖的是白纸,其他三人额头上帖的是黑纸” D说:“我看见其他四人额头上帖的都是白纸” E说:什么也没有说 现在已知额头上帖黑纸的人说的都是谎话,额头上贴白纸的人说的都是实话,请你编写程序,求出这五个人谁的额头上帖的白纸,谁的额头上帖的黑纸。
时间: 2023-05-18 13:07:02 浏览: 174
这是一道c语言的试题
这是一个经典的逻辑谜题,可以用C语言编写程序来解决。以下是一个可能的解法:
#include <stdio.h>
int main() {
int a, b, c, d, e;
for (a = 0; a <= 1; a++) {
for (b = 0; b <= 1; b++) {
for (c = 0; c <= 1; c++) {
for (d = 0; d <= 1; d++) {
for (e = 0; e <= 1; e++) {
if ((a + b + c + d + e == 3) && (a + b + c + d == 1) && (b + c + d + e == 4) && (c + d + e + a == 2) && (d + e + a + b == 2)) {
printf("A的额头上贴的是%s纸\n", a ? "白" : "黑");
printf("B的额头上贴的是%s纸\n", b ? "白" : "黑");
printf("C的额头上贴的是%s纸\n", c ? "白" : "黑");
printf("D的额头上贴的是%s纸\n", d ? "白" : "黑");
printf("E的额头上贴的是%s纸\n", e ? "白" : "黑");
}
}
}
}
}
}
return 0;
}
程序的思路是枚举每个人额头上贴的纸的颜色,然后判断是否符合题目中的条件。最后输出符合条件的情况,即为答案。
阅读全文