利用java数组和方法来输入一个班的成绩到一维数组中,求这个班的最高分、平均分,并统计各分数段的人数。其中分数段有:优秀(90~100)、良好(80~89)、中等(70~79)、及格(60~69)、不及格(<60分)。
时间: 2023-05-17 20:07:50 浏览: 141
好的,这是一个典型的数组和方法的应用问题。以下是一个可能的解决方案:
```java
import java.util.Scanner;
public class GradeAnalyzer {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("请输入班级人数:");
int n = scanner.nextInt();
int[] grades = new int[n];
for (int i = 0; i < n; i++) {
System.out.print("请输入第" + (i + 1) + "个学生的成绩:");
grades[i] = scanner.nextInt();
}
int maxGrade = getMaxGrade(grades);
double avgGrade = getAvgGrade(grades);
int[] count = getCount(grades);
System.out.println("最高分:" + maxGrade);
System.out.println("平均分:" + avgGrade);
System.out.println("优秀:" + count[0] + "人");
System.out.println("良好:" + count[1] + "人");
System.out.println("中等:" + count[2] + "人");
System.out.println("及格:" + count[3] + "人");
System.out.println("不及格:" + count[4] + "人");
}
public static int getMaxGrade(int[] grades) {
int max = grades[0];
for (int i = 1; i < grades.length; i++) {
if (grades[i] > max) {
max = grades[i];
}
}
return max;
}
public static double getAvgGrade(int[] grades) {
int sum = 0;
for (int i = 0; i < grades.length; i++) {
sum += grades[i];
}
return (double) sum / grades.length;
}
public static int[] getCount(int[] grades) {
int[] count = new int[5];
for (int i = 0; i < grades.length; i++) {
if (grades[i] >= 90) {
count[0]++;
} else if (grades[i] >= 80) {
count[1]++;
} else if (grades[i] >= 70) {
count[2]++;
} else if (grades[i] >= 60) {
count[3]++;
} else {
count[4]++;
}
}
return count;
}
}
```
这个程序首先让用户输入班级人数,然后使用一个循环来逐个输入每个学生的成绩,并将它们存储在一个一维数组中。接下来,它调用三个方法来计算最高分、平均分和各分数段的人数。最后,它输出这些结果。
注意,这个程序没有进行输入验证,如果用户输入了非法的数据,程序可能会出错。为了使程序更加健壮,你可以添加一些输入验证的代码。
阅读全文