我正在努力处理用于计算 A、B、C 类测验结果的算法的边缘情况。
测验由任意数量的问题组成,每个问题都有对应于 A、B 和 C 的 3 个答案。每个问题都单独显示,并带有一个继续按钮,一旦回答完所有问题,就会显示结果.
有3种可能的结果,分别对应A、B、C。
显示的结果应该是选择最多的答案。
如果两个答案被平均选择,结果应该是最后选择了那些答案中的一个。
这是我苦苦挣扎的最后一部分,计算这个的最佳方法是什么?我需要在测验期间存储什么才能做到这一点?
我的初步计算是:
if (countA > countB && countA > countC)
{
result = "A";
}
else if (countB > countA && countB > countC)
{
result = "B";
}
else if (countC > countA && countC > countB)
{
result = "C";
}
else
{
// two results are equal
}
计算最后一个案例的最佳方法是什么?
最佳答案
您提出的问题似乎没有考虑答案是否正确。无论哪种方式,您都可以保留 7 个计数器:
- 答案数量,A(或正确答案 A)
- 答案数,B
- 答案数,C
- 当前问题索引(用于接下来的三个计数器)
- 最后一个答案的索引,A(或最后一个正确的 A 答案)
- 最后一个答案的索引,B
- 最后一个答案的索引,C
对于每个问题,您都会增加“当前问题索引”。如果您关心答案是否正确,请仅在正确时执行以下步骤。如果您不在乎,请始终执行以下步骤。
如果给出答案 A,则增加“答案数 A”计数器,并设置“最后一个答案索引 A”的值。
当您完成测验时,您将有大量数据来构建正确的答案。
关于多项选择题计算结果的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3439321/