题目描述
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。
如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。
请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整 数。
输入描述
输入的第一行包含一个整数 � (1≤�≤104)n (1≤n≤104),表示考试人数。
接下来 �n 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
输出描述
输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分 四舍五入保留整数。
输入输出样例
示例
输入
7
80
92
56
74
88
100
0
输出
71%
43%
运行限制
最大运行时间:1s
最大运行内存: 256M
代码实现
import java.util.Scanner;
public class Lanqiao02 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int i=sc.nextInt();
int arr[]=new int[i];
double sum1=0;
double sum2=0;
for (int i1 = 0; i1 < arr.length; i1++) {
arr[i1]=sc.nextInt();
if(arr[i1]>=60&&arr[i1]<85){
sum1++;
}else if(arr[i1]>=85){
sum1++;
sum2++;
}
}
System.out.println(Math.round(sum1*100/i)+"%");
System.out.println(Math.round(sum2*100/i)+"%");
}
}
结果实例

重点
【四舍五入取整】
Math.ceil(double num)函数是取浮点数的天花板数,即不小于num的最小整数;
Math.floor(double num)函数是取地板数,即不大于num的最大整数。
这两个函数的返回值均是double型(java中当其值大于9999999.0时,默认用科学记数法表示),如果超过没有特殊情况,或者说规则很明确,就一种规则。
Math.round(double num)函数是取整函数,该函数只关注小数点后第一位小数值,具体规则如下:
(1).参数的小数点后第一位<5,运算结果为参数整数部分。
(2).参数的小数点后第一位>5,运算结果为参数整数部分绝对值+1,符号(即正负)不变。
(3).参数的小数点后第一位=5,正数运算结果为整数部分+1,负数运算结果为整数部分。
总结:大于五全部加,等于五正数加,小于五全不加。