Java 不使用数组按降序排序整数

Java 不使用数组按降序排序整数,java,bubble-sort,Java,Bubble Sort,我想按降序对6个家庭作业分数的输入进行排序,现在输入来自一个文件,它由以下格式的分数组成 前任: hw1 hw2 hw3 hw4 hw5 hw6 学生150 30 40 10 30 0 学生2 12 20 30 12 30 40 学生3125060102030 我已经编写了适当的代码来获取输入,并将分数保存在变量hw1中,该变量为所有学生提供所有hw1分数,以此类推 我还编写了一个代码来对hw等级进行排序,但其中存在一些问题。据我所知,排序代码之前的while循环中存在问题,请提供帮助 dou

我想按降序对6个家庭作业分数的输入进行排序,现在输入来自一个文件,它由以下格式的分数组成 前任: hw1 hw2 hw3 hw4 hw5 hw6 学生150 30 40 10 30 0 学生2 12 20 30 12 30 40 学生3125060102030

我已经编写了适当的代码来获取输入,并将分数保存在变量
hw1
中,该变量为所有学生提供所有
hw1
分数,以此类推

我还编写了一个代码来对hw等级进行排序,但其中存在一些问题。据我所知,排序代码之前的
while
循环中存在问题,请提供帮助

 double t2,t1,q1,q2,hw1,hw2,hw3,hw4,hw5,hw6,Final;
 String Last_Name,First_Name;
 int HW_Count=0;

 Scanner input=new Scanner(System.in);
 Scanner inData=new Scanner(System.in);

 File inFile=new File("grades1.txt");
 boolean inFileFound = false;

 try {
     input=new Scanner(inFile);
     inFileFound=true;
 }
 catch(FileNotFoundException fnf) {
     System.out.println("File not found");           
 }

 while(inFileFound&&input.hasNextLine()) {
        Last_Name=input.next();
        t1=input.nextDouble();
        t2=input.nextDouble();
        Final=input.nextDouble();
        hw1=input.nextDouble();
        hw2=input.nextDouble();
        hw3=input.nextDouble();
        hw4=input.nextDouble();
        hw5=input.nextDouble();
        hw6=input.nextDouble();
        q1=input.nextDouble();
        q2=input.nextDouble();
        HW_Count=input.nextInt();
        First_Name=input.nextLine();

        double t1final=t1*10/100;
        double t2final=t2*15/100;
        double Finalfinal=Final*25/200;
        double q1final=q1*1/10;
        double q2final=q2*1/10;
        double finalgrade=0;
        double temp=0;

        while((hw1<hw2)||(hw2<hw3)||(hw3<hw4)||(hw4<hw5)) {
            if(hw1<hw2) {
                temp=hw1;
                hw1=hw2;
                hw2=temp;
            }
            if(hw2<hw3) {
                temp=hw2;
                hw2=hw3;
                hw3=temp;
            }
            if(hw3<hw4) {
                temp=hw3;
                hw3=hw4;
                hw4=temp;
            }
            if(hw4<hw5) {
                temp=hw4;
                hw4=hw5;
                hw5=temp;
            }
            if(hw5<hw6) {
                temp=hw5;
                hw5=hw6;
                hw6=temp;
            }
        }
    }
双t2、t1、q1、q2、hw1、hw2、hw3、hw4、hw5、hw6、最终版本;
字符串Last_Name,First_Name;
int HW_计数=0;
扫描仪输入=新扫描仪(System.in);
扫描仪inData=新扫描仪(System.in);
文件填充=新文件(“grades1.txt”);
布尔inFileFound=false;
试一试{
输入=新扫描仪(填充);
inFileFound=true;
}
捕获(FileNotFoundException fnf){
System.out.println(“未找到文件”);
}
while(inFileFound&&input.hasNextLine()){
Last_Name=input.next();
t1=输入。nextDouble();
t2=input.nextDouble();
Final=input.nextDouble();
hw1=input.nextDouble();
hw2=input.nextDouble();
hw3=input.nextDouble();
hw4=input.nextDouble();
hw5=input.nextDouble();
hw6=input.nextDouble();
q1=input.nextDouble();
q2=input.nextDouble();
HW_Count=input.nextInt();
First_Name=input.nextLine();
双t1final=t1*10/100;
双t2final=t2*15/100;
双倍最终=最终*25/200;
双q1final=q1*1/10;
双q2最终=q2*1/10;
双末级=0;
双温=0;

while((hw1我发现你的代码只有一个问题,尽管这可能不是全部,因为脱离上下文很难理解(我只是相信你的文件读取,因为我不知道文件的格式)。尽管我不喜欢使用Final作为变量(Final是一个关键字),它是有效的。我能清楚地看到的问题实际上是while循环。虽然你在排序中考虑了hw6,但它不是while循环if的一部分。这意味着如果hw1=5,hw2=10,hw3=15,hw4=20,hw5=25,hw6=0;排序不会发生,它们仍然是无序的。使while循环
while((hw1Adding | |)(hw5
private void swap(double a, double b){
    int temp= a;
    a=b;
    b=temp;
}