题目描述
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。
请计算这次考试的最高分、最低分和平均分。
输入描述
输入的第一行包含一个整数 n (1 ≤ n ≤ ),表示考试人数。
接下来 n 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
输出描述
输出三行。
第一行包含一个整数,表示最高分。
第二行包含一个整数,表示最低分。
第三行包含一个实数,四舍五入保留正好两位小数,表示平均分。
输入输出样例
示例
输入:
7
80
92
56
74
88
99
10
输出:
99
10
71.29
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
解题思路:
该题在算法领域中是一道可以说是入门题目,难度简单。总览题目理解题意可知,该题是想要在 n 位学生中选出最小分数、最大分数和平均分 (保留两位小数,算是本道题唯一一个值得学习的难点,这里用可以格式化保留小数点位数输出的 DecimalFormat 类)。该算法的 Java 代码实现如下:
import java.util.Scanner;
import java.text.DecimalFormat;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
DecimalFormat decimalFormat = new DecimalFormat("0.00");
int[] scores = new int[n];
int maxScore = 0, minScore = 100;
double sum = 0;
for (int i = 0; i < n; i++) {
scores[i] = scan.nextInt();//值为 0 ~ 100
sum += scores[i];
if (scores[i] > maxScore) {
maxScore = scores[i];
}
if (scores[i] < minScore) {
minScore = scores[i];
}
}
System.out.println(maxScore);
System.out.println(minScore);
System.out.println(decimalFormat.format(sum / n));
scan.close();
}
}