이 프로그램에서는 각 학생의 크기와 그에 관련된 등급을 묻는 중입니다. myStudents [i]는 각 학생의 이름과 성적을 보유합니다. 지금 내가 겪고있는 문제는 내 선택의 두 가지 때문입니다. 나는 각 학생들을 성적에 따라 정렬하기로되어 있었는데 (가장 높은 것에서 가장 낮은 것까지. 나는 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;
}
}
을 내가 그것을 탑재 가져 물체 시작하면 나는 약간 혼란스러워하는 경향이있다. 다시 말하지만, 어떤 조언이 크게이다 감사합니다.
당신은 'Stream.of (strings) .forEach (System.out :: println)'와 같은 for-loop를 출력한다는 것을 의미합니다. – ifly6
이름과 점수를 비공개로 설정하지 않으면 get 메소드를 만들지 않습니다. . student.score 및 student.name을 사용하여 액세스 할 수 있습니다. 또한 이름을 고려해야합니다. 성적이 동등한 경우 알파벳 순으로 이름을 정렬해야합니다. – Meepo