题目描述
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。
如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。
请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。
输入描述
输入的第一行包含一个整数 n\ (1 \leq n \leq 10^4)n (1≤n≤104),表示考试人数。
接下来 nn 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
输出描述
输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分 四舍五入保留整数。
原题链接 https://www.lanqiao.cn/problems/502/learning/
package com.study.蓝桥杯.历届真题;
import java.util.HashMap;
import java.util.Scanner;
public class 成绩统计 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
HashMap<Integer, Integer> hm = new HashMap<>();
for (int i = 0; i < n; i++) {
int num = sc.nextInt();
if (!hm.containsKey(num)) {
hm.put(num, 1);
} else {
hm.put(num, hm.get(num) + 1);
}
}
int pass = 0, excellent = 0;
for (int i = 60; i <= 100; i++) {
if (hm.containsKey(i)) {
pass += hm.get(i);
excellent = i >= 85 ? excellent + hm.get(i) : excellent;
}
}
System.out.println((int)((pass * 1.0 / n) * 100 + 0.5) + "%");
System.out.println((int)((excellent * 1.0 / n * 100 + 0.5)) + "%");
}
}