用java编程数组实现统计50名学生的百分制成绩中各分数段的学生人数,即分别统计出100分、90~99分、80~89分、70~79分、60~69分、不及格的学生人数
时间: 2024-10-16 12:04:55 浏览: 21
在Java中,我们可以创建一个学生数组,每个元素代表一个学生的成绩,并使用计数器数组来存储每个分数段的人数。这里是一个简单的示例:
```java
import java.util.ArrayList;
import java.util.List;
class Student {
private int score;
// 构造函数,getScore方法等...
public Student(int score) {
this.score = score;
}
public int getScore() {
return score;
}
}
public class GradeCounter {
private static final int[] MARK_BINS = {100, 90, 80, 70, 60, 0}; // 分数段范围
public static void countStudents(List<Student> students) {
int[] countArray = new int[MARK_BINS.length];
for (Student student : students) {
int binIndex = Arrays.binarySearch(MARK_BINS, student.getScore());
if (binIndex >= 0) { // 成绩在范围内
countArray[binIndex]++;
} else if (binIndex < -binIndex - 2]--;
}
}
// 输出结果
for (int i = 0; i < countArray.length; i++) {
System.out.println("得分区间 " + (MARK_BINS[i] + 1) + " 到 " + MARK_BINS[i+1] + " 的学生有:" + countArray[i]);
}
}
public static void main(String[] args) {
List<Student> students = new ArrayList<>();
// 假设这里有50个学生数据并填充到students列表
// ...
countStudents(students);
}
}
```
在这个例子中,`countStudents`方法遍历学生列表,通过二分查找找到每个学生的成绩对应的计数器位置。如果成绩在指定范围内,则直接增加计数;如果成绩小于最小范围,则说明是不及格,需要从对应不及格区间的计数器减去1。
阅读全文