Первое сообщение! У меня есть задание, которое требует от меня написать java-программу, которая читает данные из текстового файла и сортирует его в соответствии с оценкой и их инициалами. Текстовый файл следующим образом:Почему мой тип пузыря не работает? Java
John Doe 75
Joe Blow 65
Mary Smith 80
John Green 82
Jill White 97
Вот мой код:
import java.util.Scanner;
public class HelloWorld{
public static void main(String[] args) throws Exception{
String[] firstName = new String[5];
String[] lastName = new String[5];
int score[] = new int[5];
java.io.File file = new java.io.File("data.txt");
Scanner input = new Scanner(file);
int c=0;
while(input.hasNext()){
firstName[c] = input.next();
lastName[c] = input.next();
score[c] = input.nextInt();
c++;
}
input.close();
MichaelBubbleSort(score);
for(int x=4;x>=0;x--){
System.out.print(firstName[x].substring(0,1) + lastName[x].substring(0,1) + " " + score[x]);
System.out.println();
}
}
public static void MichaelBubbleSort(int[] arr){
int temp;
for(int i=0; i < arr.length-1; i++){
for(int j=1; j < arr.length-i; j++){
if(arr[j-1] > arr[j]){
temp=arr[j-1];
arr[j-1] = arr[j];
arr[j] = temp;
}
}
}
}
}
Но по какой-то причине он всегда выходит как:
JW 97
JG 82
MS 80
JB 75
JD 65
выход должен быть:
JW 97
JG 82
MS 80
JD 75
JB 65
Любые причины, по которым это происходит?
вы отсортированный счет, но не упорядоченные имени соответственно. Вот почему вы столкнулись с этой проблемой. – Zealous
Какой выход вы ожидаете? (пожалуйста, отредактируйте вопрос) – xerx593