我需要写所以我创建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