1.2 最佳赛车问题
题目描述
四名专家对四款赛车进行评论。
专家A说:2号赛车是最好的。
专家B说:4号赛车是最好的。
专家C说:3号不是最佳赛车。
专家D说:专家B说错了。
事实上只有一款赛车最佳,且只有一名专家说对了,其他三人都说错了。请编程输出最佳车的编号,以及哪位专家所对了。
分析
题目要求
请编程输出最佳车的编号,以及哪位专家所对了。
从题目要求中大致可以确定,在实现中需要一个变量记录说对了的专家编号,一个变量记录最佳赛车编号。
已知条件
事实上只有一款赛车最佳,且只有一名专家说对了,其他三人都说错了。
用4个变量分别记录四个专家说的是否正确,将四个变量的和是否等于1作为判断条件之一。
设计思路
- 使用一个变量theBestCar,表示最佳赛车号,取值1,2,3,4使用循环依次讨论分别。
- 用四个变量wordA,wordB,wordC,wordD表示四名专家说的是否正确,1为正确,0为错误。
- 判断
- 如果存在wordA ,wordB ,word C,wordD的和为1,且满足 最佳赛车数量为1的情况,则输出结果。
- 否则无解
转化为C语言
专家A说:2号赛车是最好的。
专家B说:4号赛车是最好的。
专家C说:3号不是最佳赛车。
专家D说:专家B说错了。
wordA = (2 == theBestCar);
wordB = (4 == theBestCar);
wordC = (3 != theBestCar);
wordD = !wordB;
代码实现
程序
#include <stdio.h> #include<stdlib.h> int main(