大神快来啊,C或C++ 10

1.问题描述(来个逻辑题)一共有5个红领巾,编号分别为A、B、C、D、E,老奶奶被他们其中一个扶过了马路。五个红领巾各自说话:A:我和E都没有扶老奶奶B:老奶奶是被C和E... 1. 问题描述(来个逻辑题)
一共有5个红领巾,编号分别为A、B、C、D、E,老奶奶被他们其中一个扶过了马路。
  五个红领巾各自说话:
A :我和E都没有扶老奶奶
B :老奶奶是被C和E其中一个扶过大街的
C :老奶奶是被我和D其中一个扶过大街的
D :B和C都没有扶老奶奶过街
E :我没有扶老奶奶
  已知五个红领巾中有且只有2个人说的是真话,请问是谁扶这老奶奶过了街?
  若有多个答案,在一行中输出,编号之间用空格隔开。

答案应为:(10分)
展开
 我来答
pardream941026
2015-12-16 · TA获得超过8217个赞
知道大有可为答主
回答量:4602
采纳率:89%
帮助的人:1341万
展开全部

假定X扶了,再根据他们说得,判断一下就出来了。

1.假如A扶了,则 A:X,  B:X, C:X,    D :对,  E:对,符合

2.假如B扶了,则 A:对, B:X, C:X,  D:X,   E:对,符合

3.假如C扶了,则 A:对, B:对,C:对,D:X,   E:对,不符合

4.假如D扶了,则 A:对, B:X, C:对,D:对,  E:对,不符合

5.假如E扶了,则 A:X,   B:对,C:X, D:对,  E:X, 符合

所以是A, B, E扶了。三个答案

===========================================

忘记了,用编程实现。过一会。

===========================================

#include <stdio.h>
#include <string.h>
/*
1.  问题描述(来个逻辑题)
    一共有5个红领巾,编号分别为A、B、C、D、E,老奶奶被他们其中一个扶过了马路。
  五个红领巾各自说话:
A :我和E都没有扶老奶奶
B :老奶奶是被C和E其中一个扶过大街的
C :老奶奶是被我和D其中一个扶过大街的
D :B和C都没有扶老奶奶过街
E :我没有扶老奶奶
  已知五个红领巾中有且只有2个人说的是真话,请问是谁扶这老奶奶过了街?
  若有多个答案,在一行中输出,编号之间用空格隔开。
*/

/**
  0 - N
  1 - Y, (one of them)
  2 - not sure
  */
char say[5][5] = {
    0, 2, 2, 2, 0,
    2, 2, 1, 2, 1,
    2, 2, 1, 1, 2,
    2, 0, 0, 2, 2,
    2, 2, 2, 2, 0
};

char right[5] = {0,0,0,0,0};    //假定第i个人说的是真话,则第i个数据改为1 (从0数)

int main() {
    int i,j, k;
    int yn;

    for (i=0;i<5;i++) {
        yn = 0;
        memset(right, 0, 5);
        right[i] = 1;
        for (j=0;j<5;j++) {
            if (say[j][i]!=right[i] && say[j][i]!=2)
                yn ++; //假话
            else {
                for (k=0;k<5;k++) {
                    if (say[j][k]==1 && say[j][i]!=1) {
                        yn++; //假话
                        break;
                    }
                }
            }
        }
        if (yn==3) //3个假话,则2个真话
            printf("%c ", (0x41+i));
    }
}
广州奥泰斯工业自动化控制设备有限公司_
2023-03-29 广告
日本OPTEX FA光电传感器产品已在中国大陆销售了近30年,产品的高性价比已被广大客户所认可。为更好的服务广大客户,日本株式会社(OPTEX FA)于2013年成立广州奥泰斯工业自动化控制设备有限公司,作为OPTEX FA中国区总部。日本... 点击进入详情页
本回答由广州奥泰斯工业自动化控制设备有限公司_提供
缘明思
2015-12-16 · TA获得超过543个赞
知道小有建树答主
回答量:795
采纳率:88%
帮助的人:348万
展开全部
居然红领巾还说谎!现在的孩子啊!简直了!

排列组合C5,2,=20,就20个组合,看这每个组合里剩下3个是否符合确定的真值表。有真的则不是需要的答案。全假的则为需要输出的答案。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2015-12-16
展开全部
中大新华的?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式