2 回答

TA貢獻1830條經(jīng)驗 獲得超9個贊
創(chuàng)建一個包裝類(比如Student)來存儲學生姓名和分數(shù)。然后使用比較器對它們進行排序以比較標記。
import java.util.Arrays;
import java.util.Comparator;
import java.util.Scanner;
public class testing {
public static void main(String[] args) {
int n = 5;//total no of students
Scanner in = new Scanner(System.in);
System.out.println("Enter Students name:");
Student[] students = new Student[n];
for (int i = 0; i<n; i++)
{
students[i] = new Student();
students[i].name = in.nextLine();
}
System.out.println("Enter marks:");
for (int i = 0; i<n; i++)
{
students[i].mark = in.nextInt();
}
Arrays.sort(students, new MarkComparator());
for (int i = 0; i < n; i++)
{
System.out.println(students[i].name + " - "+ students[i].mark);
}
}
}
class Student {
int mark;
String name;
}
class MarkComparator implements Comparator {
public int compare(Object o1,Object o2){
Student s1=(Student)o1;
Student s2=(Student)o2;
if(s1.mark>=s2.mark) {
return 1;
} else {
return -1;
}
}
}
示例輸出:
Enter Students name:
alex
bertha
chris
dan
ervin
Enter marks:
50
40
30
20
10
ervin - 10
dan - 20
chris - 30
bertha - 40
alex - 50

TA貢獻1815條經(jīng)驗 獲得超10個贊
這應該適合你
// Class student
public class Student implements Comparable {
public String Name;
public double Mark;
// Should implement comparable to be able to compare it via Marks
@Override
public int compareTo(Student per) {
if(this.Mark == per.Mark)
return 0;
else
return this.Mark > per.Mark ? 1 : -1;
}
}
//total no of students
int n = 5;
// list of students and their marks
Student[] s = new Student[n];
// Scanner
Scanner in = new Scanner(System.in);
// Get student names and their marks
for (int i = 0; i<s.length; i++)
{
s[i] = new Student();
System.out.println("Enter Student #" + i + " name :");
s[i].Name = in.nextLine();
System.out.println("Enter Student #" + i + " mark :");
s[i].mark = in.nextDouble();
}
Arrays.sort(s);
for (int i = 0; i < s.length; i++)
{
System.out.println(s[i].Name + " : " + s[i].Mark);
}
添加回答
舉報