しなければならない
- 配列を宣言/初期化して、答えが「B」、「D」、「A」、「A」、「C」、「A」、「B」、「」である12の質問の多肢選択式クイズに対する正解を保持します。 A'、' C'、' D'、' B'、' A'</ li>
- forループを使用して、1人の生徒の回答を別の配列に読み込みます
- クイズを「採点」し、以下を表示します。
- 学生の名前
- 小数第1位までのパーセンテージとしてのクイズスコア(例:12のうち7は58.3%を表示します)
その後
- まず、プログラムの上部で、クラスに何人の生徒がいるかをユーザーに尋ねます
- 各生徒の回答、「成績」クイズをループして入力し、各生徒の結果を表示します
- すべての生徒が処理されたら、高得点と低得点の値、および平均クイズスコアをパーセンテージ(小数点以下第1位)で表示します。
プログラムは次のようになります。
How many students are in the class? 2
Enter name for Student 1: Bob
Enter quiz score answers: <allow user to input 12 answers>
Bob
66.7%
Enter name for Student 2: Fred
Enter quiz score answers: <allow user to input 12 answers>
Fred
91.7%
The high score is 11 and the low score is 8
Average is: 79.2%
この配列を設定しましたが、forループを使用して実装する方法が本当にわかりません。
import java.util.*;
public class Lab4 {
public static void main(String[] args){
Scanner s= new Scanner(System.in);
String name;
char [] answerKey= { 'B' , 'D' , 'A' , 'A' , 'C' , 'A' , 'B' , 'A' , 'C' , 'D' , 'B' , 'A' };
char [] userAnswers = new char[answerKey.length];
}
}
これまでのところ助けてくれてありがとう、私はもう少しそれに取り組んできました、しかしそれは答えを入力した後に私にエラーを与えますこれは私が持っているものです
import java.util.*;
import java.text.*;
public class Lab4 {
public static void main(String[] args){
Scanner s= new Scanner(System.in);
String input;
int students;
int correctAnswers=0;
char [] answerKey= { 'B' , 'D' , 'A' , 'A' , 'C' , 'A' , 'B' , 'A' , 'C' , 'D' , 'B' , 'A' };
char [] userAnswers = new char[answerKey.length];
DecimalFormat df = new DecimalFormat("#0.0");
System.out.print("how many students are in your class?");
input = s.nextLine();
students=Integer.parseInt(input);
String [] name = new String[students];
int j=1;
while(students>=j)
{
System.out.print("Enter name of student" + j + ": ");
name[j] = s.nextLine();
System.out.print("Enter quiz score answers");
userAnswers[answerKey.length] = s.next().charAt(0);
for (int i = 0; i < userAnswers.length; ++i)
{
if(userAnswers[i]==answerKey[i]);
correctAnswers++;
}
System.out.print((df.format(correctAnswers/answerKey.length)) + "%");
j++;
}
}
}
エラーメッセージは、スレッド「メイン」の例外です。java.lang.ArrayIndexOutOfBoundsException:12 at Lab4.main(Lab4.java:29)
それが何を意味するのか、それを修正する方法がわかりません。