java从键盘读入一批成绩(数目不详),假设成绩大于等于0且小于等于100,读到负数即输入结束。统计大于等于平均成绩的个数、找出最低分和最高分。
时间: 2024-09-26 15:09:00 浏览: 43
在Java中,你可以通过Scanner类从键盘读取用户输入的成绩,并结合数组或ArrayList来存储这些成绩。以下是一个简单的步骤说明:
1. 首先,创建一个Scanner对象以获取用户的输入。
2. 使用while循环读取输入,直到遇到负数为止。将每个正分数存储在一个动态数组或ArrayList中。
3. 计算所有成绩的总和并除以成绩的数量得到平均值。
4. 对于存储的成绩列表,遍历它们找到平均分及以上的学生数量,同时记录最低分和最高分。
5. 最后更新最低分和最高分的变量。
以下是伪代码示例:
```java
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<Integer> scores = new ArrayList<>();
double sum = 0;
int countAboveAverage = 0;
int minScore = Integer.MAX_VALUE;
int maxScore = Integer.MIN_VALUE;
while (true) {
System.out.println("请输入成绩(负数表示结束输入):");
int score = scanner.nextInt();
if (score < 0) {
break; // 输入负数,退出循环
} else if (score >= 0 && score <= 100) {
scores.add(score);
sum += score;
countAboveAverage++;
minScore = Math.min(minScore, score);
maxScore = Math.max(maxScore, score);
}
}
// 计算平均分
double average = sum / scores.size();
System.out.println("平均成绩:", average);
System.out.println("大于平均成绩的学生人数:", countAboveAverage);
System.out.println("最低分:", minScore);
System.out.println("最高分:", maxScore);
scanner.close();
}
}
```
阅读全文