一道c语言作业题,不是很难 ,但是我不知道从那下手

四位同学中有一位做了好事,不留名。表扬信来了之后,老师问是谁做了好事。A说:不是我B说:是CC说:是DD说:他胡说。(C胡说,不是D。)已知只有三个人说的是真话,一个人说... 四位同学中有一位做了好事,不留名。表扬信来了之后,老师问是谁做了好事。
A说:不是我
B说:是C
C说:是D
D说:他胡说。(C胡说,不是D。)
已知只有三个人说的是真话,一个人说的是假话,请根据这些信息,编写程序求出做了好事的人。

我们c语言刚开始学,希望大侠尽量用简单点的语句编程。。要注释
展开
 我来答
鷹弈
2010-09-25 · TA获得超过5194个赞
知道大有可为答主
回答量:1257
采纳率:0%
帮助的人:603万
展开全部
解析:
1代表a;2代表b;3代表c;4代表d;
A说不是他,即A默认是B、C、D,定义int a[3]={2,3,4};
B说是C,即b=3;
C说是D,即c=4;
D说不是他,即D默认是A、B、C,定义int d[3]={1,2,3};
显然A、D默认是C,B说是C;所以C说假话;其他的都无法推出。

代码如下:

main()
{
int i,j;
int a[3]={2,3,4},b=3,c=4,d[3]={1,2,3};
for(i=0;i<3;i++)
for(j=0;j<3;j++)
{
if(a[i]==b&&b==c)printf("D说假话\n");
if(a[i]==b&&b==d[j])printf("C说假话\n");
if(a[i]==c&&c==d[j])printf("B说假话\n");
if(b==c&&c==d[j])printf("A说假话\n");
}
}
孙行者行
2010-09-26 · TA获得超过155个赞
知道答主
回答量:233
采纳率:0%
帮助的人:104万
展开全部
C是做好事的人
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
fuby584
2010-09-25
知道答主
回答量:12
采纳率:0%
帮助的人:1.7万
展开全部
我就知道答案,是c
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zcs主任
2010-09-25
知道答主
回答量:8
采纳率:0%
帮助的人:0
展开全部
a、b、c是真、d是假的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式