用java实现随机成绩统计问题
问题描述
小蓝给学生们组织了一场考试,卷面总分为 100 分,每个学生的得分都是一个 0 到 100 的整数。如果得分至少是 60 分,则称为及格。如果得分至少为 85 分,则称为优秀。
请计算及格率和优秀率,用百分数表示,百分号前的部分四舍五入保留整数。
输入描述:
输入的第一行包含一个整数 n (1≤n≤1000),表示考试人数。
接下来 n 行,每行包含一个 0 至 100 的整数,表示一个学生的得分。
输出描述:
输出两行,每行一个百分数,分别表示及格率和优秀率。百分号前的部分 四舍五入保留整数。
import java.util.*;
public class GradaStatisic {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
Solution01 s1 = new Solution01(); //创建对象
int scan1 = scan.nextInt(); //将输入转换为整形并对函数进行输入
s1.Test(scan1);
}
}
class Solution01{
public void Test(int n) {
int sum =0;
int sum1 = 0;
ArrayList<String> list = new ArrayList<String>();
System.out.println(n);
for(int i =0;i<n;i++) {
int a =(int)(Math.random() * (99-10+1) + 10);
list.add(""+a);
System.out.println(a);
}
for(int j = 0;j<n;j++) {
//获取ArrayList数组中的元素并转换为整形进行比较
if(Integer.parseInt(list.get(j))>60) {
sum += 1;
}
if(Integer.parseInt(list.get(j))>85) {
sum1 += 1;
}
}
System.out.println(Integer.parseInt(list.get(3)));
//将sum进行浮点转化之后再进行运算,最后转化为整数
System.out.println((int)((float)sum/n*100)+"%");
System.out.println((int)((float)sum1/n*100)+"%");
}
}
对于类型转换我可能还学习不到位,如果有需要改进的请指点一二。