开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第2天,点击查看活动详情
题目描述
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。 请计算这次考试的最高分、最低分和平均分。
输入描述
输入的第一行包含一个整数 n(1 ≤ n ≤ 10^4),表示考试人数。接下来n行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
输出描述
输出三行。
第一行包含一个整数,表示最高分。
第二行包含一个整数,表示最低分。
第三行包含一个实数,四舍五入保留正好两位小数,表示平均分。
输入输出样例
示例
输入
7
80
92
56
74
88
99
10
输出
99
10
71.29
解题思路
本题不是很难,只要把输出数的总和算出来,再把最大最小值,通过每次输入比较出来就可以。需要注意的是在最后输出的时候要保留两位小数。在最后有介绍Java中常用的四舍五入的方式。
代码
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
int sum = 0, max = 0, min = Integer.MAX_VALUE;
for (int i = 0; i < n; i++) {
int num = scan.nextInt();
sum += num;
max = Math.max(max,num);
min = Math.min(min,num);
}
System.out.println(max);
System.out.println(min);
System.out.println(new BigDecimal(sum).divide(new BigDecimal(n),2, BigDecimal.ROUND_HALF_UP));
scan.close();
}
}
Java保留小数的方法
- Math.round(),使用Math工具类,我们经常使用的一种,可以保留四舍五入保留整数。
System.out.println(Math.round(5.4D)); // 5
System.out.println(Math.round(5.5D)); // 6
- String.format(),%:数字前面的整数,3:保留3为小数,f:表示浮点型。
System.out.println(String.format("%.3f",5.4999)); // 5.500
- new BigDeciml(),这里最推荐的方式,这种方式更加灵活,但是构造的时候最好传递String类型的,不会丢失精度。
System.out.println(new BigDecimal("3.14").divide(new BigDecimal("2"),2, BigDecimal.ROUND_HALF_UP)); // 1.57
System.out.println(new BigDecimal("3.145").setScale(2,BigDecimal.ROUND_HALF_UP)); // 3.15