2 つの配列を作成する必要があるプロジェクトがあります。1 つは生徒の名前を保持し、もう 1 つは生徒のスコアを保持します。ユーザーは配列のサイズを入力し、BubbleSort を使用して配列を並べ替える必要があります (ハイスコアを一番上に配置します)。プロジェクトを開始し、スコアの最初の配列を作成しました。バブル ソートを正常に実行し、成績をソートしました。名前の配列を作成する方法がわかりません。名前の配列を Grades 配列の BubbleSort に対応させるにはどうすればよいですか?
ここに私がこれまでに持っているコードがあります。
import java.util.Scanner;
public class Grades {
public static void main(String[]args){
{
Scanner GradeIn = new Scanner(System.in);
Scanner NameIn = new Scanner(System.in);
System.out.print( "How many students are there? " );
int[]GradeArray = new int[GradeIn.nextInt()];
String[]nameArray = new String[GradeIn.nextInt()];
for( int i=0 ; i<GradeArray.length ; i++ )
{
System.out.print( "Enter Grade for Student " + (i+1) + ": " );
GradeArray[i] = GradeIn.nextInt();
System.out.print( "Enter Name of Student " + (i+1) + ": " );
nameArray[i] = NameIn.nextLine();
}
bubbleSort(GradeArray, nameArray);
for( int i : GradeArray ) System.out.println( i );
System.out.println();
}
}
private static void bubbleSort(int[]GradeArray, String[] nameArray){
int n = GradeArray.length;
int temp = 0;
String temp2;
for(int i=0; i<n; i++){
for(int j=1; j<(n-i);j++){
if(GradeArray[j-1]<GradeArray[j]){
//swap
temp=GradeArray[j-1];
GradeArray[j-1]=GradeArray[j];
GradeArray[j]=temp;
temp2=nameArray[j-1];
nameArray[j=1]=nameArray[j];
nameArray[j]=temp2;
}
}
}
}
}
また、成績をダブルに変更するにはどうすればよいですか? Int から始めて、すべてを double に変更しようとすると、「Found Double、expected Int」というエラーが表示されます。
教授が求めていること: 学生の数、学生の名前、およびスコアを入力するようにユーザーに促し、スコアに従って降順で名前を出力するプログラムを作成してください。
追加情報:
2 つのアレイが必要になります。ひもを保持するための 1 つ。学生のスコアを保持する別の。(ダブルス)
配列のサイズはユーザーが入力します。
main() メソッドで配列をソートする必要があります。BubbleSort (http://www.java-examples.com/java-bubble-sort-example) を使用することをお勧めしますが、別の方法としてではありません。ヒント: grades 配列をソートする際に、グレードに従って names 配列をソートする必要があります。
最後に、names 配列を並べ替えた後に出力するメソッド (void printAnswer(String [] names)) を含める必要があります。