У меня есть проект массива, с которым мне нужна небольшая помощь. Я сделал большую часть этого, но я столкнулся с парой проблем ближе к концу. У меня есть возможность вводить имена учеников, оценки, а затем сортировать оценки (вместе с именами) и печатать в порядке убывания. Однако мне нужны оценки, установленные как двойные, и в настоящее время они застряли как целые. Я пытался изменить экземпляры Int на Double, но получаю ошибку несоответствия. Я также установил его, поэтому я ввожу размер массива в начале, но он дважды запрашивает «Количество студентов». Как мне исправить это, чтобы он спрашивал только один раз или имел 1 ввод для обоих ответов. Вот код.
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.println( "Enter Grade for Student " + (i+1) + ": " );
GradeArray[i] = GradeIn.nextInt();
System.out.println( "Enter Name of Student " + (i+1) + ": " );
nameArray[i] = NameIn.nextLine();
}
bubbleSort(GradeArray, nameArray);
for (int i = 0; i<GradeArray.length; i++)
{
System.out.print(nameArray[i]);
System.out.print(": ");
System.out.print(GradeArray[i] + " ");
}
}
}
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;
}
}
}
}
}
Любая помощь будет оценена по достоинству.