1

ご協力ありがとうございました。

割り当ては次のとおりです。

Computer Technology Instructorには、10人の学生からなる少人数のクラスがあります。インストラクターは、2つの中間テストと最終試験を実施することにより、クラスの生徒の成績を評価します。インストラクターに中間1の10グレードを入力し、これらの数値を配列に格納するように求めるプログラムを作成します。次に、中間2の10グレードのプロンプトを表示し、これらの数値を別の配列に格納します。次に、最終試験の10グレードのプロンプトを表示し、これらを別の配列に保存します。次に、midterm1からmidterm2をFinalに追加し、合計を別の配列に格納します。 次に、合計が含まれる配列をスキャンして、最小勾配と最大勾配を特定します。インストラクターに最低グレードと最高グレードを知らせます。

2つの太字のフレーズは、私が問題を抱えているところです。最小グレードと最大グレードを除いて、すべてが機能します。65から100までの数字だけを入力した後、次のように表示されます。

最高のテストスコアは:276最低のテストスコアは:249

これが私のコードです:

import java.util.Scanner;

public class Arrays {
    public static void main(String[] args) {
        // Create a scanner
        Scanner input = new Scanner(System.in);
// Prompt for the 1st mid term
    int [] midTerm1 = new int[10];
    int [] midTerm2 = new int[10];
    int [] finalExam = new int[10];
    int [] grades = new int[10];

    for (int i = 0; i < midTerm1.length; i++){
        System.out.println("Enter the 10 Mid Term 1 grades: ");
        midTerm1[i] = input.nextInt();
    }

    // Prompt for the 2nd mid term


    for (int i = 0; i < midTerm2.length; i++){
        System.out.println("Enter the 10 Mid Term 2 grades: ");
        midTerm2[i] = input.nextInt();
    }


    // Prompt for Final grades


    for (int i = 0; i < finalExam.length; i++){
        System.out.println("Please enter a Final Exam grade: ");
        finalExam[i] = input.nextInt();
    }



    for (int i = 0; i < grades.length; i++){
        grades[i] = (midTerm1[i] + midTerm2[i] + finalExam[i]);
    }

    int minGrade = grades[0];
    int maxGrade = grades[0];

    for (int i = 0; i < grades.length; i++)

    {
    if (minGrade > grades[i])
      minGrade = grades[i];
    if (maxGrade < grades[i])
      maxGrade = grades[i];

    }


    System.out.print("The highest test score is: " + maxGrade);
    System.out.print("The lowest test score is: " + minGrade);

}
}
4

1 に答える 1

4

編集:

grades[i] = (midTerm1[i] + midTerm2[i] + finalExam[i]);

あなたのコードは実際には正しいかもしれません。3つのテストスコアを合計するので、成績は65から100の間ではなく、195から300の間になると予想してください。

65から100までの数値が必要な場合は、これを3で割る必要があります。

grades[i] = (midTerm1[i] + midTerm2[i] + finalExam[i]) / 3;

または、成績を正規化する他の方法を見つけます。たとえば、決勝が成績の50%である場合、次のようになります。

grades[i] = (25 * midTerm1[i] + 25 * midTerm2[i] + 50 * finalExam[i]) / 100;

しかし、ここでも、現在のソリューションが実際には正しいソリューションである可能性があります。

于 2013-03-10T20:49:19.503 に答える