编写java程序,输入10个成绩,计算最高分,最低分,平均分,并按从小到大排序,最后统计高于平均分的人有多少?

如题所述

代码如下:

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class App20 {

public static void main(String[] args) {

Scanner scanner = new Scanner(System.in);

List<Float> scores = new ArrayList<>();

System.out.println("请输入10个人的成绩:");

for (int i = 0; i < 10; i++) {
scores.add(scanner.nextFloat());
}

float max = scores.stream().max((x, y) -> Float.compare(x, y)).get();
System.out.println("最高分:" + max);

float min = scores.stream().min((x, y) -> Float.compare(x, y)).get();
System.out.println("最低分:" + min);

float average = scores.stream().reduce(0.0f, Float::sum) / scores.size();
System.out.println("平均分:" + average);

scores.sort((x, y) -> Float.compare(x, y));

System.out.println("从小到大分数排序:");
scores.forEach(s -> System.out.print(s + " "));

long n = scores.stream().filter(r -> r > average).count();
System.out.println("\n高于平均分的有" + n + "个");
}
}

运行结果:

请输入10个人的成绩:

10 9 8 7 6 5 4 3 2 1

最高分:10.0

最低分:1.0

平均分:5.5

从小到大分数排序:

1.0 2.0 3.0 4.0 5.0 6.0 7.0 8.0 9.0 10.0 

高于平均分的有5个

温馨提示:答案为网友推荐,仅供参考
相似回答