使用Java Arrays获取min&最大

时间:2013-03-10 20:47:48

标签: java arrays max min

谢谢你的帮助。

这是作业:

  

计算机技术教练有一小班10名学生。教师通过管理2个期中考试和期末考试来评估班级学生的表现。   编写一个程序,提示教师输入中学1的10个等级并将这些数字存储在一个数组中。下一个提示中期2的10个等级并将这些数字存储在不同的数组中。下次提示参加期末考试的10个等级并将其存储在不同的阵列中。接下来将midterm1添加到midterm2到Final并将总计存储在不同的数组中。 接下来,扫描包含总计的数组,并确定最低成绩和最高成绩。告知讲师最低成绩和最高成绩。

这两个粗体短语是我遇到问题的地方。一切都有效,除了最低等级和最高等级。在我只输入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);

}
}

1 个答案:

答案 0 :(得分:4)

编辑:

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

您的代码实际上可能是正确的。由于您将三个测试分数加在一起,因此期望成绩不会介于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;

但你现在的解决方案实际上可能是正确的解决方案。