数据结构与算法练习题 成绩排序问题

题目描述
查找和排序

题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩
都按先录入排列在前的规则处理。

例示:
jack 70
peter 96
Tom 70
smith 67

从高到低 成绩
peter 96
jack 70
Tom 70
smith 67

从低到高

smith 67

Tom 70
jack 70
peter 96

输入描述:
输入多行,先输入要排序的人的个数,然后分别输入他们的名字和成绩,以一个空格隔开

输出描述:
按照指定方式输出名字和成绩,名字和成绩之间以一个空格隔开

示例1
输入
3
0
fang 90
yang 50
ning 70
输出
fang 90
ning 70
yang 50

import java.util.*;
public class Main{
    public static void main(String arg[]){
        Scanner sc=new Scanner(System.in);
        while(sc.hasNextInt()){
            int n=sc.nextInt();
            Student.flag=sc.nextInt();
            Student[] stu = new Student[n];
            for(int i=0;i<n;i++){
                stu[i]=new Student(sc.next(),sc.nextInt());
            }
            Arrays.sort(stu);
            for(int i=0;i<n;i++){
                System.out.println(stu[i]);
            }
        }
        sc.close();
    }
}
 
class Student implements Comparable<Student>{
    private String name;
    private int score;
    public static int flag;
    public Student(String name,int score){
        this.name=name;
        this.score=score;
    }
    public int compareTo(Student another){
        if(flag==0){
            return another.score-score;
        }
        return score-another.score;
    }
    public String toString(){
        return (name + " " + score);
    }
}
发布了25 篇原创文章 · 获赞 11 · 访问量 1048

猜你喜欢

转载自blog.csdn.net/weixin_41050494/article/details/103933292