1.2 最佳赛车问题
作者:互联网
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() { /** * theBestCar 最佳赛车编号 * wordA A是否说对 * wordB B是否说对 * wordC C是否说对 * wordD D是否说对 * sum 四人说对的个数和 * flagCar 最佳赛车标记,初始值为0 * count 最佳赛车数量,初始值为0 */ int theBestCar; int wordA,wordB,wordC,wordD; int sum; int flagCar = 0,count = 0; /******************************************************** * 依次列出最佳赛车的可能,对四人说的话进行判断 ********************************************************/ for (int iTemp = 1; iTemp <= 4 ; iTemp++) { theBestCar = iTemp; wordA = (theBestCar == 2); wordB = (theBestCar == 4); wordC = (theBestCar != 3); wordD = !wordB; sum = wordA + wordB + wordC + wordD; /*********************************************************** * 判断,只有一个人说对了 * 记录最佳赛车编号 * 最佳赛车数量count++ * ********************************************************/ if (sum == 1) { count++ ; flagCar = iTemp; } } /*********************************************************** * 判断 * 有且只有一辆最佳赛车? * 是--》输出结果 * 否--》无解 * ********************************************************/ if (count == 1) { theBestCar = flagCar; wordA = (theBestCar == 2); wordB = (theBestCar == 4); wordC = (theBestCar != 3); wordD = (theBestCar != 4); if (wordA) { printf("A 专家说的对\n"); } else if (wordB) { printf("B 专家说的对\n"); } else if (wordD) { printf("C 专家说的对\n"); } else { printf("D 专家说的对\n"); } printf("%d 号赛车是最好的\n",flagCar); }else { printf("无解\n"); } system("pause"); return 0; }
运行结果
标签:wordD,1.2,wordB,专家,最佳,赛车,theBestCar 来源: https://blog.csdn.net/Exception_122113/article/details/117391949