使用for循环打印出学生及其成绩从高到低,使用对象

因此,在此程序中,我要求每班学生的学生人数以及与其相关的年级。 myStudents [i]然后保存每个学生的名字和他们的成绩。我现在遇到的问题是与我的两个selectionSort。我应该按照等级来安排每个学生(从最高到最低),我认为我在public static void selectionSort(student [] myStudents)中做了正确的操作,但是我不知道如何使用for循环打印出来当我打电话选择排序。任何意见,指出我在正确的方向将不胜感激。谢谢!使用for循环打印出学生及其成绩从高到低,使用对象

import java.util.Scanner; 

public class Final4{

public static void main(String[] args) {

Scanner myInput=new Scanner(System.in);

System.out.print("Enter the size of the class: ");

int num = myInput.nextInt();

int array[] = new int[num];

double score;

student[] myStudents = new student[num];

for (int i = 0 ; i < array.length; i++) {

System.out.print("Please enter a student name: ");

myInput.useDelimiter(System.getProperty("line.separator"));

String s;

s = myInput.next();

System.out.print("Please enter " + s +"'s score: ");

score = myInput.nextDouble();

myStudents[i] = new student(s, score);

}

}

selectionSort()

public static void selectionSort(student[] myStudents) {

for (int i = myStudents.length-1; i>0; i--){

int maxIndex = 0;

student max = myStudents[0];

for (int j=1; j<=i; j++)

if (myStudents[j].getScore() > (max.getScore())) {

maxIndex = i;

}

student temp = myStudents[i];

myStudents[i] = myStudents[maxIndex];

myStudents[maxIndex] = temp;

}

}

}

class student {

String name;

double score;

student(String name, double score) {

this.name = name;

this.score = score;

}

public double getScore() {

return score;

}

public String getName() {

return name;

}

}

我往往会得到一点点困惑,一旦我马上就能得到和对象。同样,任何建议是极大的赞赏。

回答:

所以你的问题是如何打印的Student阵列是由选择排序排序,对吧?

在您的主要方法上,在循环条件(创建Student数组)之后添加此代码。

selectionSort(myStudents); 

for(Student s: myStudents) {

System.out.println(s.getName() + " " + s.getScore());

}

该代码将打印您的学生数组。

以上是 使用for循环打印出学生及其成绩从高到低,使用对象 的全部内容, 来源链接: utcz.com/qa/258660.html

回到顶部