zoukankan      html  css  js  c++  java
  • Java实现 蓝桥杯 算法提高 成绩排序

    试题 算法提高 成绩排序

    资源限制
    时间限制:1.0s 内存限制:256.0MB
    问题描述
      给出n个学生的成绩,将这些学生按成绩排序,
      排序规则,优先考虑数学成绩,高的在前;数学相同,英语高的在前;数学英语都相同,语文高的在前;三门都相同,学号小的在前
    输入格式
      第一行一个正整数n,表示学生人数
      接下来n行每行3个0~100的整数,第i行表示学号为i的学生的数学、英语、语文成绩
    输出格式
      输出n行,每行表示一个学生的数学成绩、英语成绩、语文成绩、学号
      按排序后的顺序输出
    样例输入
    2
    1 2 3
    2 3 4
    样例输出
    2 3 4 2
    1 2 3 1
    数据规模和约定
      n≤100

    PS:多用几种方法,换换思路

     
    
    import java.util.Arrays;
    import java.util.Scanner;
    
    public class 成绩排序 {
        public static class Students implements Comparable{
            int Math;
            int English;
            int Chinese;
            int Num;
    
            @Override
            public String toString() {
                return this.Math+" "+this.English+" "+this.Chinese+" "+this.Num;
            }
    
            @Override
            public int compareTo(Object o) {
                Students s= (Students) o;
                if (this.Math>s.Math){
                    return 1;
                }else if(this.Math==s.Math && this.English>s.English){
                    return 1;
                }
                else if (this.Math==s.Math && this.English==s.English && this.Chinese>s.Chinese){
                    return 1;
                }
                else if (this.Math==s.Math && this.English==s.English && this.Chinese==s.Chinese && this.Num<s.Num){
                    return 1;
                }
                return -1;
            }
        }
    
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            Students [] students = new Students[n];
            for (int i=0;i<n;i++){
                Students stu = new Students();
                stu.Math=sc.nextInt();
                stu.English=sc.nextInt();
                stu.Chinese=sc.nextInt();
                stu.Num=i+1;
                students[i]=stu;
            }
            Arrays.sort(students);
            for (int i=n-1;i>=0;i--)
                System.out.println(students[i].toString());
    
        }
    }
    
    
  • 相关阅读:
    swift运算符使用_02_swift基本数据类型
    OSChina-01Swift终端命令行
    开源框架汇总-01-第三方
    修改App名称-01-修改项目中APP名
    NSAttributedString.h 中文本属性key的说明-06
    SQLite总结-05
    Linux系统判断gcc是否安装
    翻译文件结构规范
    并行SVN版本控制
    页面设计规范
  • 原文地址:https://www.cnblogs.com/a1439775520/p/12946939.html
Copyright © 2011-2022 走看看