ZBLOG

用c语言 正确输出他们各自所戴帽子的颜色。 厅内有 5 个人,他们均戴着帽子,有白帽子和红帽子。 已知戴白帽子的说真话,戴红帽子的说假话,请从他们各自提供的线索辨别谁戴白帽子,谁戴红帽子。 甲:我看见一个戴白帽子的 乙:我没有看见戴红帽子的 丙:我看见一个戴白帽子的,但不是甲 丁:我没有看见戴白帽子的 戊:我的帽子和丙一样 编程要求 请在右侧编辑器Begin-End处补充代码,完成本关任务,要求程序输出结果按甲乙丙丁戊的顺序分别输出他们所戴帽子的颜色,输出格式为: 甲戴X...

请参考以下代码,实现对戴帽子的颜色进行判断:

#include <stdio.h>

int main() {
    int hatColors[5] = {0}; // 存储每个人戴的帽子颜色,0表示未确定,1表示白帽子,2表示红帽子

    for (int i = 1; i <= 5; i++) {
        hatColors[i-1] = 1; // 假设第i个人戴白帽子

        if (hatColors[0] != 1) { // 如果甲看到的不是白帽子,则假设错误
            hatColors[i-1] = 2;
        }

        if (hatColors[3] == 1) { // 如果丁看到了白帽子,则假设错误
            hatColors[i-1] = 2;
        }

        if ((hatColors[2] == 1 && i != 3) || (hatColors[2] != 1 && i == 3)) { // 如果丙看到的是白帽子,并且不是甲,则假设错误;或者如果丙看到的不是白帽子,并且是甲,则假设错误
            hatColors[i-1] = 2;
        }

        if ((i == 4 && hatColors[4] != hatColors[2]) || (i !=4 && hatColors[4]==hatColors[2])) { // 如果戊和丙的帽子颜色相同,则假设正确;否则假设错误
            hatColors[i-1] = 2;
        }
    }

    // 输出结果
    printf("甲戴%s帽子\n", hatColors[0]==1 ? "白" : "红");
    printf("乙戴%s帽子\n", hatColors[1]==1 ? "白" : "红");
    printf("丙戴%s帽子\n", hatColors[2]==1 ? "白" : "红");
    printf("丁戴%s帽子\n", hatColors[3]==1 ? "白" : "红");
    printf("戊戴%s帽子\n", hatColors[4]==1 ? "白" : "红");

    return 0;
}

根据题目中的线索进行逻辑判断,最后输出每个人所戴的帽子颜色。


内容由零声教学AI助手提供,问题来源于学员提问

本站部分文章来源于网络,版权归原作者所有,如有侵权请联系站长删除。
转载请注明出处:https://golang.0voice.com/?id=11652

分享:
扫描分享到社交APP
上一篇
下一篇
发表列表
游客 游客
此处应有掌声~
评论列表

还没有评论,快来说点什么吧~

联系我们

在线咨询: 点击这里给我发消息

微信号:3007537140

上班时间: 10:30-22:30

关注我们
x

注册

已经有帐号?