用户输入任意10位同学的成绩(成绩为百分制),如果超过范围则提示范围越界,需要重新输入。输入完毕后,统计出各个分数段的人数比例是多少?
时间: 2024-10-29 22:25:26 浏览: 28
首先,我们需要创建一个程序来接收用户输入的成绩,并检查是否在有效范围内(通常来说,成绩在0到100之间)。然后我们将使用HashMap来存储每个分数段的学生人数,并计算每个分数段的比例。以下是简单的Java代码实现:
```java
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
public class ScoreCounter {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Map<Integer, Integer> scoreCount = new HashMap<>();
int totalStudents = 0;
// 提示用户输入并处理成绩
while (totalStudents < 10) {
System.out.println("请输入第" + (totalStudents + 1) + "位同学的成绩(范围0-100):");
int score = scanner.nextInt();
// 检查范围
if (score < 0 || score > 100) {
System.out.println("成绩超出范围,请重新输入!");
continue;
}
scoreCount.put(score, scoreCount.getOrDefault(score, 0) + 1);
totalStudents++;
}
// 计算比例
double totalScoreRange = 101; // 总分段范围
for (Map.Entry<Integer, Integer> entry : scoreCount.entrySet()) {
int count = entry.getValue();
double percentage = (double) count / totalStudents * 100;
System.out.printf("分数段 %d-%d 的学生占比为 %.2f%%\n", entry.getKey(), entry.getKey() + 1, percentage);
}
scanner.close();
}
}
```
阅读全文