我需要寫所以我創建2個陣列如何的比賽時間,排名
跑者ID(10個澆道)
的比賽時間,可以排名的比賽時間的10名跑步者 的程序10名選手(比賽時間必須小於或等於20.0秒)
,我發現我的排序算法不能正確使用,我不想用Arrays.sort(x);
因爲我需要梳理「那些比賽的時間和ID」這裏是我的代碼
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] ID = new String[10];
double[] time = new double[10];
for (int i = 0; i < ID.length; i++) {
System.out.print("Please enter ID and times: ");
ID[i] = sc.nextLine();
time[i] = sc.nextDouble();
}
Run a = new Run(ID, time);
System.out.println("Top 3 is ");
a.Sort();
}
}
和
public class Run {
private String[] ID = new String[10];
private double[] time = new double[10];
public Run(String[] ID, double[] time) {
for (int i = 0; i < ID.length; i++) {
this.ID[i] = ID[i];
}
for (int i = 0; i < time.length; i++) {
if (time[i] <= 20.0) {
this.time[i] = time[i];
}
}
}
public void Sort() {
double tem1;
String tem2;
for (int i = 0; i < time.length; i++) {
for (int j = 0; j < time.length; j++) {
if (time[j] > time[j+1]) {
tem1 = time[j];
time[j] = time[j+1];
time[j+1] = tem1;
tem2 = ID[j];
ID[j] = ID[j+1];
ID[j+1] = tem2;
}
}
}
for (int i = 0; i < 3; i++) {
System.out.println(ID[i] + " " + time[i]);
}
}
}
,所以我需要知道爲什麼我的排序算法不能正確使用,它的流行在我的控制檯上出現錯誤。
還有一個問題,在輸入級,當我輸入的第一ID和時間,如果我按這樣
ID [0] - >輸入 - >時間[0]
然後輸入是正確的,但如果我按
ID [0] - >空格鍵 - >時間[0]
則輸入錯誤。 爲什麼?我該如何解決它?
你允許使用['List'](https://docs.oracle.com/javase/7/docs/api/ java/util/List.html)和['Comparable'](https://docs.oracle.com/javase/7/docs/api/java/lang/Comparable.html),因爲它們是針對您的問題制定的?如果是的話,我可以發表解釋的答案 – Al1