これは私がクラスのために取り組んでいるプログラムです。ほとんどのプログラムを作成した後、実行しようとしていますが、論理エラーがあるようです。なんらかの理由で、コンピューターは最初の for ループまで実行し、ユーザーに配列に値を入力するように求める scan.nextInt メソッドを無視します。
編集: 新しい問題: プログラムを実行すると、正しく実行されていないループは 2 番目の for ループです。何を入力しても、可能な合計正解数として合計正解数を返します。また、0% の正解を返します :(
編集2:正解率の問題を修正しましたが、クイズの採点時に入力された正解の入力値を比較する正しい方法についてはまだ途方に暮れています...常に正解数を返します正しいかどうかに関係なく、質問の総数になります。
import java.util.Scanner;
public class gradingQuizzes {
public static void main(String[] args)
{
int numQuestions; // number of questions on quiz
int numCorrect = 0; // number correct of entered values
int correctAnswer;
Scanner scan = new Scanner(System.in);
System.out.println("Please enter the amount of questions in the Quiz: ");
numQuestions = scan.nextInt();
int[] key = new int[numQuestions]; // creates an array for the key to the quiz
// Prompts the user to enter values into the key array
for (int i = 0; i < key.length; i++)
{
System.out.println("Please enter the correct answer to question number " + (i + 1) + " : ");
key[i] = scan.nextInt();
}
System.out.println("Please enter the answers for the quiz to be graded: ");
System.out.println("---------------------------------------------------");
// 'for' loop asking for the correct answer for each question on the quiz
for (int i = 0; i < key.length; i++)
{
System.out.println("Question " + (i + 1) + " answer: ");
correctAnswer = scan.nextInt();
if (correctAnswer == key [i]);
{
numCorrect++; // increments the number correct for each match to the key
}
}
// Creates a variable to compute the percent correct on the quiz
double percentCorrect = (numCorrect / (key.length));
System.out.println("The number correct is: " + numCorrect);
System.out.println("The percent correct: %" + percentCorrect);
}