import java.util.Scanner;
public class TestScore
{
public static int[] ScoreSort(int s[])
{
int t;
for(int i=0;i<s.length;i++)
{
for(int j=0;j<s.length-i-1;j++)
{
if(s[j]>s[j+1]){
t=s[j];
s[j]=s[j+1];
s[j+1]=t;
}
}
}
return s;
}
public static void main(String[] args)
{
int n;
int[] k;
Scanner scan=new Scanner(System.in);
System.out.println("请输入学生个数:");
n=scan.nextInt();
Student[] stu = new Student[n];
k=new int[n];
for(int i=0;i<n;i++)
{
stu[i]=new Student();
System.out.println("请输入第"+(i+1)+"学生姓名:");
stu[i].setName(scan.next());
System.out.println("请输入该学生成绩:");
stu[i].setScore(scan.nextInt());
}
for(int j=0;j<n;j++)
{
k[j]=stu[j].getScore();//成绩赋给k数组
}
k=ScoreSort(k);//冒泡排序
System.out.println("最高分为:"+k[n-1]);
System.out.println("第二高分:"+k[n-2]);
}
}
就是输入n个学生,输入姓名和得分之后,打印出得分最高的和第二高的学生姓名,但是我做出来的是把得分赋值给k数组,这样一来,下标就和原来的乱了,所以找不到学生姓名了,请大家帮我纠正下,能用什么方法,谢谢
多属性排序问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- rednaxelafx 2009-03-26 21:00关注
嗯,这样之类……
[code="java"]import java.util.*;class Student {
private int score;
private String name;public void setName(String name) { this.name = name; } public String getName() { return name; } public void setScore(int score) { this.score = score; } public int getScore() { return score; }
}
public class TestScore {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("请输入学生个数:");
int n = scan.nextInt();
Student[] stu = new Student[n];
for(int i = 0; i < n; ++i) {
stu[i] = new Student();
System.out.println("请输入第"+(i+1)+"学生姓名:");
stu[i].setName(scan.next());
System.out.println("请输入该学生成绩:");
stu[i].setScore(scan.nextInt());
}
Arrays.sort(stu, new Comparator() {
public int compare(Student a, Student b) {
return a.getScore() - b.getScore();
}public boolean equals(Object obj) { return obj.getClass() == this.getClass(); } }); System.out.println("最高分为:" + stu[n - 1].getScore() + ", " + stu[n - 1].getName()); System.out.println("第二高分:" + stu[n - 2].getScore() + ", " + stu[n - 2].getName()); }
}[/code]
楼主的问题其实不是多属性排序,而是根据对象的单一属性来排序啦 =v=本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 求chat4.0解答一道线性规划题,用lingo编程运行,第一问要求写出数学模型和lingo语言编程模型,第二问第三问解答就行,我的ddl要到了谁来求了
- ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
- ¥50 树莓派安卓APK系统签名
- ¥15 maple软件,用solve求反函数出现rootof,怎么办?
- ¥65 汇编语言除法溢出问题
- ¥15 Visual Studio问题
- ¥20 求一个html代码,有偿
- ¥100 关于使用MATLAB中copularnd函数的问题
- ¥20 在虚拟机的pycharm上
- ¥15 jupyterthemes 设置完毕后没有效果