1004. 成绩排名 (20)

    xiaoxiao2021-03-25  138

    1004. 成绩排名 (20) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 CHEN, Yue 读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。 输入格式:每个测试输入包含1个测试用例,格式为 第1行:正整数n 第2行:第1个学生的姓名 学号 成绩 第3行:第2个学生的姓名 学号 成绩 ... ... ... 第n+1行:第n个学生的姓名 学号 成绩 其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。 输出格式:对每个测试用例输出2行,第1行是成绩最高学生的姓名和学号,第2行是成绩最低学生的姓名和学号,字符串间有1空格。 输入样例: 3 Joe Math990112 89 Mike CS991301 100 Mary EE990830 95 输出样例: Mike CS991301

    Joe Math990112

    Java实现代码:

    public class ScorePojo { private String name; private String snum; private int score; public ScorePojo(String name, String snum, int score) { super(); this.name = name; this.snum = snum; this.score = score; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getSnum() { return snum; } public void setSnum(String snum) { this.snum = snum; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } @Override public String toString() { return name + " " + snum; } }

    public class ScoreOrder { public static void main(String[] args) { @SuppressWarnings("resource") Scanner cin = new Scanner(System.in); int nextInt = cin.nextInt(); new ScoreOrder().exe(nextInt); } public void exe(int nextInt) { @SuppressWarnings("resource") Scanner cin = new Scanner(System.in); List<Integer> scorelist = new ArrayList<Integer>(); List<ScorePojo> list = new ArrayList<ScorePojo>(); while (nextInt > 0) { String str = cin.nextLine(); String[] split = str.split(" "); int score = Integer.parseInt(split[2]); ScorePojo pojo = new ScorePojo(split[0], split[1], score); scorelist.add(score); list.add(pojo); nextInt--; } // 升序 Collections.sort(scorelist); // 取出最高成绩与最低成绩 int high = scorelist.get(scorelist.size() - 1); int low = scorelist.get(0); List<ScorePojo> orderlist = new ArrayList<ScorePojo>(); for (int i = 0; i < list.size(); i++) { if ((list.get(i).getScore() != high) || (list.get(i).getScore() != low)) { // System.out.println(list.get(i).toString()); orderlist.add(list.get(i));// 只保留最高成绩和最低成绩对象 } } if (orderlist.get(0).getScore() > orderlist.get(1).getScore()) {// 输出排序 System.out.println(orderlist.get(0).toString()); System.out.println(orderlist.get(1).toString()); } else { System.out.println(orderlist.get(1).toString()); System.out.println(orderlist.get(0).toString()); } } }

    转载请注明原文地址: https://ju.6miu.com/read-20048.html

    最新回复(0)