我很难意识到为什么即使我输入了所有正确的答案,我的计数器仍会打印出不同的值。我已经尝试了所有我能想到的东西以及研究,但仍然没有运气。请帮助,这是我工作的第14小时"简单"程序
gem 'ckeditor', github: 'galetahub/ckeditor', ref: '11d3a5b'
答案 0 :(得分:0)
您的程序显示错误值的原因是singleAnswer
变量仅存储用户给出的最后一个值/答案。
我创建了一个数组userAnswer
来存储给出的所有答案。
试试这个:
public class DriverTestBlah {
public static void main(String [] args){
Scanner input = new Scanner(System.in);
char[] correctAnswers = {'A','D','C','A','A','D','B',
'A','C','A','D','C','B','A','B'};
char[] userAnswer = new char[correctAnswers.length];
for(int i = 0; i < 15; i++) //print question numbers/takes user input
{
System.out.println("Question " + (i + 1) + ":");
userAnswer [i] = input.nextLine().charAt(0);
}//end of for loop
System.out.println("number correct: " + total_correct_answers(correctAnswers, userAnswer));
input.close();
}//end of main
public static int total_correct_answers(char []correctAnswers,char [] userAnswer) {
int number_correct = 0;
for (int i = 0; i < 15; i++){
if(correctAnswers[i] == userAnswer[i]){
number_correct++;
}
}//end of for loop
return number_correct;
}//end of correct method
}//end of class
答案 1 :(得分:0)
对于每个问题,您在数组中都有正确答案 correctAnswers 并且用户回答在哪里?在 singleAnswer 中的此模式下,您只保存用户的最后一个答案,并针对每个答案进行检查。 要解决这个问题,你可以像这样创建一个singleAnswer的char数组:
char[] singleAnswer=new char[15];
结果在数组中添加:
singleAnswer[i]=input.nextLine().chatAt(0);
在for循环中使用此指令查看结果是否正确之后:
if(singleAnswer[i]==correctAnswers[i]) number_correct++;