「这是我参与2022首次更文挑战的第21天,活动详情查看:2022首次更文挑战」。
题目描述
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。 如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。 请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。
输入描述
输入的第一行包含一个整数 n (1≤n≤104)n\ (1 \leq n \leq 10^4)n (1≤n≤104),表示考试人数。 接下来 nnn 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
输出描述
输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分 四舍五入保留整数。
输入输出样例
示例
输入
7
80
92
56
74
88
100
0
输出
71%
43%
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
解题思路:
- for循环读取所有成绩。
- 累计后乘100再除去总人数。
- 利用Math.round();取整方法取整。可以利用口诀记忆内容: 四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍去,五前为奇要进一!
- 输出百分比
import java.util.Scanner;
// 1:无需package
// 2: 类名必须Main, 不可修改
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int num = scan.nextInt();
double[] a = new double[2];
for(int i = 0;i < num;i++){
double tmp = scan.nextDouble();
if(tmp >= 60)
a[0]++;
if(tmp >= 85)
a[1]++;
}
// Math.round();取整方法
// 四舍六入五考虑,五后非零就进一,五后皆零看奇偶,五前为偶应舍去,五前为奇要进一!
double tmp = Math.round(a[0]*100/num);
double tmp_ = Math.round(a[1]*100/num);
System.out.println((int)tmp+"%");
System.out.println((int)tmp_+"%");
scan.close();
}
}
PS:
- 要注意成绩的数据类型要为double。
- 要注意强制数据类型转化之间,会存在数据误差