Skip to content

这题话说的太绕了,容易让人有思路但被绕晕,学习了网上的一些写法,总结了一些经验。

对象化存储

本题要求的就是处理 n 个学生答的 m 道题,这时候将处理数据抽象成 timu 对象来做处理更简便,因为一开始就可以很方便的定义 timu对象的所有属性,避免后续边写边增加属性把自己搞晕。 本题的题目应当有以下属性:

  1. 满分
  2. 选项个数
  3. 正确选项数
  4. 每个选项的错误次数
  5. 正确答案

如何巧妙的处理括号

最容易想到的肯定是用 getline(cin,str,split) 的重载形式,但不清楚实现细节的话在考场上容易翻车。 所以可以先把 ( 读进一个 char 变量,再读取后面的那个数据,再重复将正确答案读入题目对象中。

函数实现判分

这种题没必要存储判断结果,判一个人输出一个人即可。 用数组下标直接存储选项位置,和正确答案数组进行比对即可得出结果,同时更新错误选项计数数组,同时返回判分结果。对每个人的每道题分别判分,最后输出当前学生的判分结果。

输出错的最多的题目

首先遍历各个题目的错误计数数组,找到最大值。 这时候在这个思路下排序顺序其实是顺理成章的,咋说呢,写这种题有时候也不能总是想着把数据都存下来,然后写 sort 函数排序,有时候还是要开拓下思路的== 接下来就是从题目顺序由小到大,按照选项顺序由小到大遍历错误统计数组,等于最大值的就直接输出错误次数、题目编号和选项即可。 当然,显而易见的,如果最大值是 0 输出就是 too simple