KolibreathMe 2017-02-15 12:45 采纳率: 0%
浏览 2297

PAT 返回非零 不知道哪里有问题 本地样例可以运行

题目:
读入n名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

输入格式:每个测试输入包含1个测试用例,格式为

第1行:正整数n
第2行:第1个学生的姓名 学号 成绩
第3行:第2个学生的姓名 学号 成绩
... ... ...
第n+1行:第n个学生的姓名 学号 成绩
其中姓名和学号均为不超过10个字符的字符串,成绩为0到100之间的一个整数,这里保证在一组测试用例中没有两个学生的成绩是相同的。
输出格式:对每个测试用例输出2行,第1行是成绩最高学生的姓名和学号,第2行是成绩最低学生的姓名和学号,字符串间有1空格。

 import java.util.*;

/**
 * Created by kolibreath on 2017/2/15.
 */
public class Main implements Comparator {

    private int flag =0;
    public static void main(String args[]){
        List<Student> list = new ArrayList<Student>();
        List<String> list1 = new ArrayList<String>();
        Scanner sc1 = new Scanner(System.in);
        Scanner sc2 = new Scanner(System.in);
        int total = sc1.nextInt();
        for (int i=0;i<total;i++){
            String studentinfo = sc2.nextLine();
            String infos[]  = studentinfo.split(" ");
            Student student= new Student(infos[0],infos[1],infos[2]);
            list.add(student);
        }
        //sort中第二个参数放一个实现了compare接口的类
        Main main = new Main();
        Collections.sort(list,main);
        Student student1 = list.get(total-1);
        Student student2 = list.get(0);
        list1.add(student2.getName()+" "+student2.getMajor());
        list1.add(student1.getName()+" "+student1.getMajor());
        for (int i=0;i<list1.size();i++){
        System.out.println(list1.get(i));
        }

    }

    @Override
    public int compare(Object o1, Object o2) {
        Student student1 = (Student)o1;
        Student student2 = (Student)o2;
        int score1 = Integer.parseInt(student1.getScore());
        int score2 = Integer.parseInt(student2.getScore());

        //compareto比较的是String类型 返回值有0,1,-1
        if (score1>score2){
            flag = -1;
        }
        if (score1==score2){
            flag = 0;
        }
        if (score1<score2){
            flag = 1;
        }
        return flag;
    }

    static class Student{
        private String name;
        private String major;
        private String score;
        public Student(String name, String major, String score){
            this.name = name;
            this.major= major;
            this.score=score;
        }
        public String getName(){
            return name;
        }
        public String getMajor(){
            return major;
        }
        public String getScore(){
            return score;
        }
    }
}


  • 写回答

1条回答 默认 最新

  • threenewbee 2017-02-15 14:58
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 C#调用python代码(python带有库)
  • ¥15 矩阵加法的规则是两个矩阵中对应位置的数的绝对值进行加和
  • ¥15 活动选择题。最多可以参加几个项目?
  • ¥15 飞机曲面部件如机翼,壁板等具体的孔位模型
  • ¥15 vs2019中数据导出问题
  • ¥20 云服务Linux系统TCP-MSS值修改?
  • ¥20 关于#单片机#的问题:项目:使用模拟iic与ov2640通讯环境:F407问题:读取的ID号总是0xff,自己调了调发现在读从机数据时,SDA线上并未有信号变化(语言-c语言)
  • ¥20 怎么在stm32门禁成品上增加查询记录功能
  • ¥15 Source insight编写代码后使用CCS5.2版本import之后,代码跳到注释行里面
  • ¥50 NT4.0系统 STOP:0X0000007B