题目:
/*
-
4、题目要求:读入N名学生的成绩,将获得某一给定分数的学生人数输出。
输入格式:测试输入包含若干测试用例,每个测试用例的格式为
第1行:N
第2行:N名学生的成绩,相邻两数字用一个空格间隔。
第3行:给定分数
当读到N=O时输入结束。其中N不超过1000,成绩分数为(包含)0到100之间的一个整数。输出格式:对每个测试用例,将获得给定分数的学生人数输出。
输入:
3
80 60 90
60
2
85 66
0
5
60 75 90 55 75
75
0
输出:
1
0
2
*/
代码:
public class Four127 {
public static void main(String[] args) {
System.out.println("请输入测试数据,相邻的成绩用一个空格间隔:");//输出提示语句
Scanner sc = new Scanner(System.in); //获取控制台输入
String str = "";
ArrayList<String> strList = new ArrayList<String>();//动态数组
int statue = 0; //记录当前输入的是第几行
while(!(str.trim().equals("0")&&statue%3==1)){
str = sc.nextLine();
strList.add(str); //添加至动态数组
statue = statue+1;
}
sc.close();
//后面的标号为行号(每三行为一次处理)
/* 3 0
80 60 90 1
60 2
2 3
85 66 4
0 5
5 6
60 75 90 55 75 7
75 8
0 9
*/
for (int i = 0; i < strList.size(); i=i+3) { //每三行为一次处理
if(i%3==0&&strList.get(i).trim().equals("0")) { //当输入0时不处理
}else {
int n = Integer.parseInt(strList.get(i).trim()); //学生人数n
String grad = strList.get(i+2).trim(); //给定成绩
String strgrads = strList.get(i+1).trim(); //成绩串
String grads [] = strgrads.split(" ");
int stunum=0;
if (n==grads.length) { //成绩个数是否和给定的人数相同
for (int j = 0; j < grads.length; j++) { //将这些成绩与给定的成绩比较
if(grads[j].equals(grad)) { //这里用字符串,一样的效果
stunum = stunum+1; //相等加一
}
}
System.out.println("第"+(((i)/3)+1)+"组:"+stunum);
}else {
System.out.println("成绩输入有误!");
}
}
}
}
}