导师分配的活儿,实在不知道怎么整了,所以上来求助。
评分标准如下:例如某一题包括五个小题,正确答案为ABACD。如果答题者回答的字母和顺序都正确(ABACD)算满分。如果字母是正确答案里的字母,但顺序有误,那么每错一个扣一分;比如回答ABAAC,那么最后的A和C就属于这种情况,应扣2分。如果字母不是正确答案里的,那么每错一个扣两分;比如回答ABAEF,那么最后的E和F就属于这种情况,应扣4分。
现在初步的想法是利用find函数,输出答题者回答的每一个字母在正确答案中的位置,与小题号相等的话就知道他答对了,不相等或干脆为0的话就知道他答错了,再区分应该扣1分还是2分即可。例如回答的是ABAAC,那么对于第一个A,用find("ABACD",“A"),输出1的话就能知道他回答正确了。但是这么做有一个问题:对于第二个A,也就是第三小题的这个A,根据正确答案ABACD,其实他是答对了的。但是find函数输出的只能是在正确答案中第一次出现A的位置,也就是1,与3不等,那就会错误判断为他答错了。
苦思良久也不知道怎么解决这个问题,求大神帮助。