用c语言实现: 正确输出他们各自所戴帽子的颜色。 厅内有5个人,他们均戴着帽子,有白帽子和红帽子。 已知戴白帽子的说真话,戴红帽子的说假话,请从他们各自提供的线索辨别谁戴白帽子,谁戴红帽子。 甲:我看见一个戴白帽子的. 乙:我没有看见戴红帽子的 丙:我看见一个戴白帽子的,但不是甲 丁:我没有看见戴白帽子的 戊:我的帽子和丙一样。要求程序输出结果按甲乙丙丁戊的顺序分别输出他们所戴帽子的颜色,输出格式为:甲戴X帽子 乙戴X帽子 丙戴X帽子 丁戴X帽子. 戊戴X帽子 其中X代表他们所戴帽子的具体颜色。*/
时间: 2024-03-31 09:34:59 浏览: 109
以下是用 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 == 1 && b == 0 && c == 1 && d == 0 && e == 1) ||
(a == 0 && b == 1 && c == 1 && d == 0 && e == 1))
{
printf("甲戴白帽子\n乙戴红帽子\n丙戴白帽子\n丁戴红帽子\n戊戴红帽子\n");
return 0;
}
else if ((a == 0 && b == 1 && c == 1 && d == 0 && e == 0) ||
(a == 1 && b == 0 && c == 0 && d == 1 && e == 0))
{
printf("甲戴红帽子\n乙戴白帽子\n丙戴白帽子\n丁戴红帽子\n戊戴红帽子\n");
return 0;
}
}
return 0;
}
```
程序中使用了五重循环来穷举五个人所戴的帽子颜色,通过判断每个人的话与实际情况是否一致来确定他们所戴的帽子颜色。最终输出结果按照甲、乙、丙、丁、戊的顺序分别输出他们所戴帽子的颜色。
阅读全文