排序数组-eclipse中的Java

排序数组-eclipse中的Java,java,arrays,sorting,Java,Arrays,Sorting,问题是: 国际奥委会要求你编写一个程序来处理数据,并确定双人花样滑冰的奖牌得主。您将获得以下文件: Pairs.txt 其中包含每对溜冰者的数据。数据包括每位选手的姓名、所在国家以及八名裁判在技术和表现方面的得分。典型记录如下所示: 史密斯 琼斯 澳大利亚 5.0 4.9 5.1 5.2 5.0 5.1 5.2 4.8 4.3 4.7 4.8 4.9 4.6 4.8 4.9 4.5 每位滑冰运动员的最终得分是两类得分的平均值之和 设计一个类来保存上述数据和最终分数。从文件中读取数据并计算每对的最

问题是:

国际奥委会要求你编写一个程序来处理数据,并确定双人花样滑冰的奖牌得主。您将获得以下文件: Pairs.txt

其中包含每对溜冰者的数据。数据包括每位选手的姓名、所在国家以及八名裁判在技术和表现方面的得分。典型记录如下所示:

史密斯 琼斯 澳大利亚 5.0 4.9 5.1 5.2 5.0 5.1 5.2 4.8 4.3 4.7 4.8 4.9 4.6 4.8 4.9 4.5

每位滑冰运动员的最终得分是两类得分的平均值之和

设计一个类来保存上述数据和最终分数。从文件中读取数据并计算每对的最终分数。对物体阵列进行排序,并在屏幕上按顺序显示结果,特别突出奖牌获得者

这是我的课


我做了排序,但我的输出是错误的。得分最高的应该是第一名,即获胜者,以此类推。我的代码没有这样做,有人能帮我吗

问题似乎在这里:

private static void sortSkaters(Skaters[] arr, double count) {
    for (int i = 0; i < count; i++) {
        int high = i;
        for (int k = i + 1; k < count; k++) {
            if (arr[k].getScore() > arr[high].getScore())
                high = k;
            //HERE
            if (i != high) {
                Skaters temp = arr[i];
                arr[i] = arr[high];
                arr[high] = temp;
            }
        }
    }
}

Eclipse是一个IDE。如果您在java中对数组进行排序的方式不同于其他任何工具,这将是一个大问题。您知道有内置的对数组进行排序的方式吗?你不必自己做这些。@Takendarkk似乎是练习如何创建排序算法的家庭作业。@LuiggiMendoza你可能是对的。问题似乎就在这里:如果我!=high{这是在内部for-each中执行的。
import java.io.*;
import java.util.Scanner;

public class testSkaters {

    private static final int NUMBER_OF_JUDGES = 8;

    public static void main(String[] args) throws IOException {

        Skaters[] arrSkaters = new Skaters[50];

        File myFile = new File("Pairs.txt");

        Scanner input = new Scanner(myFile);

        int countSkaters = 0;
        String name1;
        String name2;
        String country;
        double[] arr1 = null;
        double[] arr2 = null;

        while (input.hasNext())

        {

            name1 = input.nextLine();
            name2 = input.nextLine();
            country = input.nextLine();

            arr1 = new double[8];
            for (int i = 0; i < NUMBER_OF_JUDGES; i++)

                arr1[i] = input.nextDouble();

            arr2 = new double[8];
            for (int j = 0; j < NUMBER_OF_JUDGES; j++)

                arr2[j] = input.nextDouble();

            Skaters s1 = new Skaters(name1, name2, country, arr1, arr2);

            arrSkaters[countSkaters] = s1;

            countSkaters++;

            input.nextLine();

        }

        sortSkaters(arrSkaters, 10);

        for (int t = 0; t < countSkaters; t++)

        {
            System.out.println("Name 1: " + arrSkaters[t].getName1());

            System.out.println("Name 2: " + arrSkaters[t].getName2());

            System.out.println("Country: " + arrSkaters[t].getCountry());

            printArray(arrSkaters[t].getArrTech());

            printArray1(arrSkaters[t].getArrArt());

            System.out.println("Score: " + arrSkaters[t].getScore() + "\n");

        }

    }

    public static void printArray(double[] arr3) {
        for (int r = 0; r < arr3.length; r++)

            System.out.print(arr3[r] + " ");
        System.out.println();

    }

    public static void printArray1(double[] arr4) {
        for (int s = 0; s < arr4.length; s++)

            System.out.print(arr4[s] + " ");
        System.out.println();
    }

    private static void sortSkaters(Skaters[] arr, double count) {

        for (int i = 0; i < count; i++) {
            int high = i;

            for (int k = i + 1; k < count; k++) {
                if (arr[k].getScore() > arr[high].getScore())

                    high = k;

                if (i != high) {
                    Skaters temp = arr[i];
                    arr[i] = arr[high];
                    arr[high] = temp;
                }

            }

        }
    }
}
smith
jones
australia
4.2 5.1 3.8 2.9 5.0 4.6 4.9 4.3
4.9 4.8 5.8 3.8 4.9 4.6 5.0 4.5
lennon
murray
england
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8
3.1 3.2 3.3 3.4 3.5 3.6 3.7 3.8
gusto
petitot
italia
4.1 4.2 4.3 4.4 4.5 4.6 4.7 4.8
5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8
lahaie
petit
france
1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8
5.1 5.2 5.3 5.4 5.5 5.6 5.7 5.8
bilodeau
bernard
canada
2.1 2.2 2.3 2.4 2.5 2.6 2.7 2.8
4.1 4.2 4.3 4.8 4.9 4.6 4.0 4.5
lahore 
pedro
mexico
3.2 3.1 3.8 3.9 3.0 3.6 3.9 3.3
5.9 5.8 5.8 5.8 5.9 5.6 5.0 5.5
maliak
kolikov
russia
4.2 4.1 4.8 4.9 4.0 4.6 4.9 4.3
1.9 1.8 1.8 1.8 1.9 1.6 1.0 1.5
ching
chong
china
5.2 5.1 5.8 5.9 5.0 5.6 5.9 5.3
2.9 2.8 2.8 2.8 2.9 2.6 2.0 2.5
gates
brown
U.S
1.2 1.1 1.8 1.9 1.0 1.6 1.9 1.3
3.9 3.8 3.8 3.8 3.9 3.6 3.0 3.5
joe
charlie
switzerland
2.2 2.1 2.8 2.9 2.0 2.6 2.9 2.3
4.9 4.8 4.8 4.8 4.9 4.6 4.0 4.5
private static void sortSkaters(Skaters[] arr, double count) {
    for (int i = 0; i < count; i++) {
        int high = i;
        for (int k = i + 1; k < count; k++) {
            if (arr[k].getScore() > arr[high].getScore())
                high = k;
            //HERE
            if (i != high) {
                Skaters temp = arr[i];
                arr[i] = arr[high];
                arr[high] = temp;
            }
        }
    }
}
private static void sortSkaters(Skaters[] arr, double count) {
    for (int i = 0; i < count; i++) {
        int high = i;
        for (int k = i + 1; k < count; k++) {
            if (arr[k].getScore() > arr[high].getScore()) {
                high = k;
            }
        }
        //HERE
        if (i != high) {
            Skaters temp = arr[i];
            arr[i] = arr[high];
            arr[high] = temp;
        }
    }
}