2020/6/30
问题
读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。 输入格式: 每个测试输入包含 1 个测试用例,格式为
第 1 行:正整数 n
第 2 行:第 1 个学生的姓名 学号 成绩
第 3 行:第 2 个学生的姓名 学号 成绩
... ... ...
第 n+1 行:第 n 个学生的姓名 学号 成绩
其中姓名和学号均为不超过 10 个字符的字符串,成绩为 0 到 100 之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。 输出格式: 对每个测试用例输出 2 行,第 1 行是成绩最高学生的姓名和学号,第 2 行是成绩最低学生的姓名和学号,字符串间有 1 空格。
知识点
ArrayList获取下标使用.get()方法,并且前面需要标明基本数据类型,如 int a=Integer.parseInt((String)score.get(0));
注:原则上只需使用(int)score.get(0)进行转换,此处score.get(0)为Object
tips:可以使用泛型进行修改, 如ArrayList<String> score=new ArrayList<String>();
Java代码1.0
import java
.util
.Scanner
;
import java
.util
.ArrayList
;
public class Main{
public static void main(String
[] args
){
Scanner sc
=new Scanner(System
.in
);
int num
=sc
.nextInt();
sc
.nextLine();
ArrayList score
=new ArrayList();
ArrayList name
=new ArrayList();
ArrayList school
=new ArrayList();
for(int i
=0;i
<num
;i
++){
String tmp
=sc
.nextLine();
String
[] str
=tmp
.split(" ");
score
.add(str
[2]);
name
.add(str
[0]);
school
.add(str
[1]);
}
int maxscore
= Integer
.parseInt((String
)score
.get(0));
int maxn
=0;
int minscore
= Integer
.parseInt((String
)score
.get(0));
int minn
=0;
for(int i
=1;i
<num
;i
++){
int compare
=Integer
.parseInt((String
)score
.get(i
));
if(maxscore
< compare
){
maxscore
=compare
;
maxn
=i
;
}
if (minscore
>compare
){
minscore
=compare
;
minn
=i
;
}
}
System
.out
.println(name
.get(maxn
)+" "+school
.get(maxn
));
System
.out
.println(name
.get(minn
)+" "+school
.get(minn
));
}
}
暂时不想查找简便操作