我有一个模拟学生多项选择测试项目的两个数组。第一个数组是测试的20个正确答案:
(正确答案)正确[]中包含以下数字:
1,4,3,3,2,2,1,1,4,5,3,3,3,5,2,4,2,5,4,5
(学生答案)答案[]中包含以下数字:
0,3,3,0,2,4,0,1,4,5,0,3,3,1,2,4,2,0,4,5
如果学生选择" 0"他们承认他们不知道答案,他们的分数保持不变。如果他们选择了错误的答案,他们将失去0.25分,如果他们选择了答案,他们会得到1分。
我试图找出如何创建一个比较每个数组中元素的循环,并为学生提供整体成绩。
非常感谢任何帮助。
编辑:这是我尝试过的代码:
double totalGrade = 0;
while(i <= 20) {
switch(studentAnswer){
case 0:
break;
case 1:
if(correct[i] == answers[i])
{
totalGrade ++;
}
else {
totalGrade = totalGrade - 0.25;
}
case2:
if(correct[i] == answers[i])
{
totalGrade ++;
}
else {
totalGrade = totalGrade - 0.25;
}
case 3:
if(correct[i] == answers[i])
{
totalGrade ++;
}else {
totalGrade = totalGrade - 0.25;
}
case 4:
if(correct[i] == answers[i])
{
totalGrade ++;
}
else {
totalGrade = totalGrade - 0.25;
}
case 5:
if(correct[i] == answers[i])
{
totalGrade ++;
}else {
totalGrade = totalGrade - 0.25;
}
}
}
答案 0 :(得分:0)
for(int i=0; i<correct.length; i++){
if(answers[i] == correct[i]){
totalGrade += 1;
} else if(answers[i]!=0){
totalGrade -= 0.25;
}
}
编辑:对于switch / case语句来说,这不是真正正确的用法,因为大多数情况都是完全相同的。如果你想走那条路,那就更像是
for(int i=0; i<correct.length; i++){
switch(answers[i]){
case 0:
break;
case else:
if(answers[i] == correct[i]){
totalGrade += 1;
} else{
totalGrade -= 0.25;
}
break;
}
}