【发布时间】:2020-09-08 13:13:00
【问题描述】:
代码是按照分数降序排列和打印学生姓名。一个班级有“n”个学生。他们有三个不同的主题:数据结构、算法设计和分析以及操作系统。所有学生的每个科目的分数都提供给您。你必须告诉每个学生在课堂上的位置。根据他们在课堂上的位置打印每个学生的姓名。平局根据他们的卷数打破。在两个分数相同的学生之间,卷数较少的学生将获得较高的排名。输入按卷号顺序提供。 我能够实现代码,其中我创建了一个配对类以根据它们的标记进行排序并将所有对象存储在数组中。之后,我使用 Array.sort 对数组进行排序。 那么 Arrays.sort(pair) 是如何根据什么对数组进行排序的呢。
import java.util.*;
public class Main{
static class pair implements Comparable<pair>{
int marks;
String name;
public pair(int m, String n){
this.marks = m;
this.name = n;
}
@Override
public int compareTo(pair p){
return p.marks - this.marks;
}
}
public static void main(String args[]){
Scanner in = new Scanner(System.in);
// String sn = in.nextLine();
int n = in.nextInt();
pair[] arr= new pair[n];
for(int i =0;i< n;i++){
String name = in.next();
int sum = 0;
for(int j = 0;j<3;j++){
int num = in.nextInt();
sum += num;
}
int marks = sum ;
arr[i]= new pair(marks,name);
}
Arrays.sort(arr);
for(int i = 0;i<arr.length;i++){
System.out.println(i+1 +" "+arr[i].name);
}
}
}
【问题讨论】:
-
你需要发布一些代码让其他人帮助你。你可以看到这个问一个好问题How do I ask a good question?
-
我无法将代码放在这里,因为格式存在一些问题,并且 stackoverflow 不允许我这样做。
-
您只需发布代码,我可以帮助您重新格式化代码。
-
您好,我包含了代码。
标签: java arrays sorting comparable