标题:(求解答思路)有四位同学中的一位做了好事,不留名,表扬信来了之后,校长 ...
只看楼主
a924677591
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2016-9-30
结帖率:0
 问题点数:0 回复次数:5 
(求解答思路)有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事
有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事.
A说:不是我。
B说:是C。  
C说:是D。
D说:他胡说。
已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人.
怎么用c语言编程来判断啊。以及设计思想是怎么样的??主要讲下思想,谢谢!
搜索更多相关主题的帖子: 表扬信 c语言编程 信息 
2016-11-07 20:06
孙浩月
Rank: 1
来 自:江苏
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-10-13
得分:0 
c

我是新手 ,求各位大神多多关照。本人 男,QQ 1556454540.欢迎打扰。嘻嘻
2016-11-30 18:23
ldsh304
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:7
帖 子:242
专家分:755
注 册:2016-1-18
得分:0 
for i=1; i <= 4; i++
{
     假设一个说的假话
      {
        若果其他说的是真话(即和说假话的没有矛盾),则假设成立
      }
}

2016-11-30 18:31
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
程序代码:
#include<stdio.h>
int main()
{
    enum Studnet{A,B,C,D};
    enum Studnet y,ly;
    for (y=A;y<=D;y++)
    {
        int t=0;
        for (ly=A;ly<=D;ly++,t=0)
        {
            if (ly!=A)
                t+=y!=A;
            else 
                t+=y==A;
            if (ly!=B)
                t+=y==C;
            else 
                t+=y!=C;
            if (ly!=C)
                t+=y==D;
            else
                t+=y!=D;
            if (ly!=D)
                t+=y!=D;
            else 
                t+=y==D;
            if (t==4)
                break;
        }
        if (t==4)
            break;
    }
    switch(y)
    {
        case A:printf("A\n");break;
        case B:printf("B\n");break;
        case C:printf("C\n");break;
        case D:printf("D\n");break;
    }

    return 0;
}

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-30 20:11
纵横阳仔
Rank: 7Rank: 7Rank: 7
来 自:自学成才的火星人儿
等 级:贵宾
威 望:26
帖 子:147
专家分:698
注 册:2016-10-20
得分:0 
以下是引用九转星河在2016-11-30 20:11:08的发言:

#include<stdio.h>
int main()
{
    enum Studnet{A,B,C,D};
    enum Studnet y,ly;
    for (y=A;y<=D;y++)
    {
        int t=0;
        for (ly=A;ly<=D;ly++,t=0)
        {
            if (ly!=A)
                t+=y!=A;
            else
                t+=y==A;
            if (ly!=B)
                t+=y==C;
            else
                t+=y!=C;
            if (ly!=C)
                t+=y==D;
            else
                t+=y!=D;
            if (ly!=D)
                t+=y!=D;
            else
                t+=y==D;
            if (t==4)
                break;
        }
        if (t==4)
            break;
    }
    switch(y)
    {
        case A:printf("A\n");break;
        case B:printf("B\n");break;
        case C:printf("C\n");break;
        case D:printf("D\n");break;
    }

    return 0;
}

enum Studnet y,ly;改为int y,ly;
2016-11-30 20:53
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
回复 5楼 纵横阳仔
来自火星的么?多看书,学习一下地球人的编程,enum……嗯,改为int,你试试看~~~~~~~~~~

enum是枚举类型

[此贴子已经被作者于2016-11-30 21:12编辑过]


[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2016-11-30 21:10



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-470847-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.366764 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved