PAT 1004 (java)

    技术2022-07-10  137

    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)); } }

    暂时不想查找简便操作

    Processed: 0.017, SQL: 9