PAT (Basic Level) Practice —— 1004 成绩排名(Java)

1004 成绩排名

读入 n(>0)名学生的姓名、学号、成绩,分别输出成绩最高和成绩最低学生的姓名和学号。

输入格式:

每个测试输入包含 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

代码实现

import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

class Main {
    
    
    public static void main(String[] args) {
    
    

        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        // 创建一个存储 student 对象的列表
        List<student> stuList = new ArrayList<>();
        for (int i = 0; i < n; i++) {
    
    
            student stu = new student();
            stu.setName(sc.next());
            stu.setId(sc.next());
            stu.setScore(sc.nextInt());
            // 将每个 student 对象存储到列表中
            stuList.add(stu);
        }

        int[] scoreLine = new int[n];

        for(int i = 0 ; i < n ; i++){
    
    
            scoreLine[i] = stuList.get(i).getScore();
        }
        System.out.println(stuList.get(getMaxIndex(scoreLine)).getName()+" "+stuList.get(getMaxIndex(scoreLine)).getId());
        System.out.println(stuList.get(getMinIndex(scoreLine)).getName()+" "+stuList.get(getMinIndex(scoreLine)).getId());
    }
    public static int getMaxIndex(int[] arr) {
    
    
        int maxIndex = 0;
        for (int i = 1; i < arr.length; i++) {
    
    
            if (arr[i] > arr[maxIndex]) {
    
    
                maxIndex = i;
            }
        }
        return maxIndex;
    }
    public static int getMinIndex(int[] arr) {
    
    
        int minIndex = 0;
        for (int i = 1; i < arr.length; i++) {
    
    
            if (arr[i] < arr[minIndex]) {
    
    
                minIndex = i;
            }
        }
        return minIndex;
    }


}

class student {
    
    
    private String name;
    private String id;
    private int score;

    public void setName(String name) {
    
    
        if (name.length() <= 10 && name.length() >= 1) {
    
    
            this.name = name;
        } else {
    
    
            return;
        }
    }

    public void setId(String id) {
    
    
        if (id.length() <= 10 && id.length() >= 1) {
    
    
            this.id = id;
        } else {
    
    
            return;
        }
    }

    public void setScore(int score) {
    
    
        if (score >= 0 && score <= 100) {
    
    
            this.score = score;
        } else {
    
    
            return;
        }
    }

    public int getScore() {
    
    
        return score;
    }

    public String getName() {
    
    
        return name;
    }

    public String getId() {
    
    
        return id;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_42898149/article/details/130590664
今日推荐