教師クラスのサイズを取り、名前とスコアを保持する配列を作成するコードを書いています。アイデアは、コードがスコア(名前ではなく)でソートするようにすることです。私の問題は、データのスコアの一部を二重にすることができないということです。基本的に、コードはint型の入力のみを受け取ります。生徒の名前と得点を順番に並べ替えるコード
私が完了したら、これを行うコードが必要です。
あなたのクラスには何人いるのですか? 6
名:トム・スミス
スコア:82.5
名:メアリー・スミス
スコア:92.5
名:アリスの滝
スコア: 61
名:リンダ・ニューソン
スコア:73
名:ジャック・ターナー
スコア:89.3
名:ジョージ・ブラウン
スコア:52
これは私がこれまで持っているものです。
import java.util.*;
public class FinalJamesVincent {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter the number of students: ");
int numofstudents = input.nextInt();
String[] names = new String[numofstudents];
double[] array = new double[numofstudents];
for(int i = 0; i < numofstudents; i++) {
System.out.print("Name: ");
names[i] = input.next();
System.out.print("Score: ");
array[i] = input.nextInt();
}
selectionSort(names, array);
System.out.println(Arrays.toString(names));
}
public static void selectionSort(String[] names, double[] array) {
for(int i = array.length - 1; i >= 1; i--) {
String temp;
double currentMax = array[0];
int currentMaxIndex = 0;
for(int j = 1; j <= i; j++) {
if (currentMax > array[j]) {
currentMax = array[j];
currentMaxIndex = j;
}
}
if (currentMaxIndex != i) {
temp = names[currentMaxIndex];
names[currentMaxIndex] = names[i];
names[i] = temp;
array[currentMaxIndex] = array[i];
array[i] = currentMax;
}
}
}
}
'nextInt'の代わりに' nextDouble'を使用して 'int'ではなく' double'を取得します。 – resueman
初心者であれば分かりますが、これには「Student」クラスを作る方が良いでしょう。そしてそれらをあなたが分類することができる 'Student []'に格納します。 –