这题话说的太绕了,容易让人有思路但被绕晕,学习了网上的一些写法,总结了一些经验。
对象化存储
本题要求的就是处理
- 满分
- 选项个数
- 正确选项数
- 每个选项的错误次数
- 正确答案
如何巧妙的处理括号
最容易想到的肯定是用 getline(cin,str,split) 的重载形式,但不清楚实现细节的话在考场上容易翻车。 所以可以先把 ( 读进一个 char 变量,再读取后面的那个数据,再重复将正确答案读入题目对象中。
函数实现判分
这种题没必要存储判断结果,判一个人输出一个人即可。 用数组下标直接存储选项位置,和正确答案数组进行比对即可得出结果,同时更新错误选项计数数组,同时返回判分结果。对每个人的每道题分别判分,最后输出当前学生的判分结果。
输出错的最多的题目
首先遍历各个题目的错误计数数组,找到最大值。 这时候在这个思路下排序顺序其实是顺理成章的,咋说呢,写这种题有时候也不能总是想着把数据都存下来,然后写 sort 函数排序,有时候还是要开拓下思路的== 接下来就是从题目顺序由小到大,按照选项顺序由小到大遍历错误统计数组,等于最大值的就直接输出错误次数、题目编号和选项即可。 当然,显而易见的,如果最大值是 0 输出就是 too simple