成绩分析-模拟

105 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 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();
   }
}

image.png

Java保留小数的方法

  1. Math.round(),使用Math工具类,我们经常使用的一种,可以保留四舍五入保留整数。
System.out.println(Math.round(5.4D)); // 5
System.out.println(Math.round(5.5D)); // 6
  1. String.format(),%:数字前面的整数,3:保留3为小数,f:表示浮点型。
System.out.println(String.format("%.3f",5.4999)); // 5.500
  1. 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