/*本关任务: 正确输出他们各自所戴帽子的颜色。 厅内有5个人,他们均戴着帽子,有白帽子和红帽子。 已知戴白帽子的说真话,戴红帽子的说假话,请从他们各自提供的线索辨别谁戴白帽子,谁戴红帽子。甲:我看见一个戴白帽子的. Z:我没有看见戴红帽子的 丙:我看见一个戴白帽子的,但不是甲 T:我没有看见戴白帽子的 成:我的帽子和丙一样 编程要求白真, 红假 请在右侧编辑器Begin-End处补充代码,完成本关任务,要求程序输出结果按甲乙丙丁戊的顺序分别输出他们所戴帽子的颜色,输出格式为:甲戴X帽子 乙戴X帽子 丙戴X帽子 丁戴X帽子. 戊戴X帽子 其中X代表他们所戴帽子的具体颜色。*/
时间: 2024-03-31 22:35:41 浏览: 135
#include <stdio.h>
int main() {
int a, b, c, t, cheng;
for (a = 0; a <= 1; a++) {
for (b = 0; b <= 1; b++) {
for (c = 0; c <= 1; c++) {
for (t = 0; t <= 1; t++) {
for (cheng = 0; cheng <= 1; cheng++) {
if ((a + b + c + t + cheng) == 1) { // 有且只有一个人戴白帽子
if ((a && !c && !t && !cheng) || (!a && c && !t && !cheng)) { // 根据甲和丙的说法判断白帽子的位置
printf("甲戴白帽子\n");
printf("乙戴红帽子\n");
if (a) {
printf("丙戴红帽子\n");
printf("丁戴白帽子\n");
printf("戊戴红帽子\n");
} else {
printf("丙戴白帽子\n");
printf("丁戴红帽子\n");
printf("戊戴白帽子\n");
}
return 0;
}
}
}
}
}
}
}
return 0;
}
阅读全文