题目描述
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。
如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。
请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。
输入描述
输入的第一行包含一个整数 n\ (1 \leq n \leq 10^4)n (1≤n≤104),表示考试人数。
接下来 nn 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
输出描述
输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分 四舍五入保留整数。
输入输出样例
输入
7
80
92
56
74
88
100
0
输入
71%
43%
运行限制
- 最大运行时间:1s
- 最大运行内存: 256M
实现代码
import java.util.Scanner;
public class chengji {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
//在此输入您的代码...
int n = scan.nextInt();
int[] arr = new int[n];
for(int i=0;i<n;i++){
arr[i] = scan.nextInt();
}
math(arr);
scan.close();
}
public static void math(int[] arr){
int jige = 0; //及格人数
int youxiu = 0; //优秀人数
for(int i=0;i<arr.length;i++){
if(arr[i] >= 85) {
youxiu++;
}
if(arr[i] >= 60) {
jige++;
}
}
//为得到正确集合率和优秀率,先按浮点数计算,再转为整数(这里浮点数没办法直接转换成整数,所有曲折了一点)
Float jigeLv = (float)jige / arr.length * 100;
Float youxiuLv = (float)youxiu / arr.length * 100;
Integer j = (int)((float)jige / arr.length * 100);
Integer x = (int)((float)youxiu / arr.length * 100);
//四舍五入
if(jigeLv * 10 % 10 >=5 ) {
j += 1;
}
if(youxiuLv * 10 % 10 >=5 ) {
x += 1;
}
System.out.println(j + "%");
System.out.println(x + "%");
}