用C语言编程 逻辑推理判断题

四名专家对四款赛车进行了评论:A说:2号赛车是最好的。B说:4号赛车是最好的。C说:3号赛车不是最好的。D说:B说错了。事实上只有一款赛车最佳,且只有一名专家的评论是正确... 四名专家对四款赛车进行了评论:
A说:2号赛车是最好的。
B说:4号赛车是最好的。
C说:3号赛车不是最好的。
D说:B说错了。

事实上只有一款赛车最佳,且只有一名专家的评论是正确的。

试用C语言编程求解:
展开
 我来答
爱东辉
2009-09-06 · TA获得超过113个赞
知道答主
回答量:13
采纳率:0%
帮助的人:0
展开全部
#include<stdio.h>
int main()
{
int i,j,t;
for(i=1;i<=4;i++)
{
t=(i==2)+(i==4)+(i!=3)+(i!=4);
if(t==1)break;
}
printf("\n\n最好的一款车是: %d号赛车\n\n",i);
if(i==2)printf("A说对了");
if(i==4)printf("B说对了");
if(i!=3)printf("C说对了");
if(i!=4) printf("D专家的评论是正确的。\n\n");
return 0;
}
muj2865
2009-09-05
知道答主
回答量:43
采纳率:0%
帮助的人:19.5万
展开全部
给你点提示,看你悟性了,用 集合论 处理!!!就是高中学的集合运算!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2009-09-05
展开全部
给:

#include<stdio.h>
void main()
{
int m;
for(m=1;m<5;m++)
if(!(m-2)+!(m-4)+!!(m-3)+!!(m-4)==1)
printf("第%d赛车是最好的",m);
}

运行结果:
第3赛车是最好的

说明:
!(m-2)+!(m-4)+!!(m-3)+!!(m-4)==1

有4的bool型的数值相加,当且仅当只有一个正确时,即有1个等于1.其他3个等于0,这时表示只有一位专家说对了,这是输出的m就是最好的赛车。

至于,为什么要减去数字:
!(m-2)看第一个,要是m=2是最好的,则m-2=0,再取反就是1,当别的取值都为0时,这就是最好的赛车;否则就不是。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
冰至诚
2009-09-05 · TA获得超过3006个赞
知道小有建树答主
回答量:1156
采纳率:0%
帮助的人:1085万
展开全部
#include<stdio.h>
#include<math.h>
void main()
{int t;
for(t=1;t<=4;t++)
{if((t==2)+(t==4)+(t!=3)+(t!=4)==1)
{printf("%d is the best car\n",t);break;}}
if(t==2) printf("A is true\n") ;
if(t==4) printf("B is true\n") ;
if(t!=3) printf("C is true\n") ;
if(t!=4) printf("D is true\n") ;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式