为了账号安全,请及时绑定邮箱和手机立即绑定

请问怎么没办法输出前三名,是方法哪里写错了

package grade;


import java.util.Arrays;


/*1、 考试成绩已保存在数组 scores 中,数组元素依次为 89 , -23 , 64 , 91 , 119 , 52 , 73


2、 要求通过自定义方法来实现成绩排名并输出操作,将成绩数组作为参数传入


3、 要求判断成绩的有效性( 0—100 ),如果成绩无效,则忽略此成绩*/


public class one{

public void grade(int []grades) {

Arrays.sort(grades);

int[] G = new int[3];

int j = 0,q = 0;

for(int i =grades.length-1; i>=0 ; i--) {

if(grades[i] >0 && grades[i] < 100) {

   G[q] = grades[i];

  q++;

  j++;

}

 

if(j > 3) break;

}

for(q=0;q<G.length;q++) {

System.out.println(G[q]);

}

}

}


正在回答

4 回答

import java.util.Arrays;

public class HelloWorld{

    public static void main(String[] args){

        int[] scores = new int[]{89,-23,64,91,119,52,73};

        System.out.println("考试成绩的前三名为:");

        HelloWorld hello=new HelloWorld();

        hello.showTop3(scores);    

    }

   

    

    public void showTop3(int[] scores){

        Arrays.sort(scores);

        int num=0;

        for(int i=(scores.length-1);i>=0;i--){

            if(scores[i]>=0 && scores[i]<=100){

                num++;

                if(num<=3){

                    System.out.println(scores[i]);    

                }

            }

        }    

    }

}


0 回复 有任何疑惑可以回复我~

import java.util.Arrays;

public class HelloWorld {

    

    //完成 main 方法

    public static void main(String[] args) {

     int[] scores={89,-23,64,91,119,52,73};   

     HelloWorld hello = new HelloWorld();

     hello.sortAndPrint(scores);

        

        

    }

    

    //定义方法完成成绩排序并输出前三名的功能

    public void sortAndPrint(int[] xscores){

        Arrays.sort(xscores);//排序,但默认是升序

        int len = xscores.length;

        int[] scores= new int[len];

        int count =0;//计数

        //把升序变为降序

        for(int i=0;i<xscores.length;i++){

            scores[i]=xscores[len-1-i];

        }

        xscores=scores;

        //输出前三

        for(int i=0;i<xscores.length;i++){

            //验证数据是否有效

            if(xscores[i]>0&&xscores[i]<100){

            System.out.println(xscores[i]);

            //找到即输出,计数+1

            count++;

            //找到三个,跳出循环

            if(count==3)

            break;

            }

        }

    }

    

这是我做的,可用,你可以对比一下

0 回复 有任何疑惑可以回复我~
#1

一艘小船飘啊摇啊

这里降序可以用倒序法来写啊 直接用 for(int i=scores.length-1; i>=0 ;i--){ }//倒序 从大往小遍历 for(int i=0; i<scores.length; i++){ }//升序 从小往大遍历
2019-04-09 回复 有任何疑惑可以回复我~
import java.util.Arrays;public class HelloWorld {        //完成 main 方法    public static void main(String[] args) {     int[] scores={89,-23,64,91,119,52,73};        HelloWorld hello = new HelloWorld();     hello.sortAndPrint(scores);                    }        //定义方法完成成绩排序并输出前三名的功能    public void sortAndPrint(int[] xscores){        Arrays.sort(xscores);//排序,但默认是升序        int len = xscores.length;        int[] scores= new int[len];        int count =0;//计数        //把升序变为降序        for(int i=0;i<xscores.length;i++){            scores[i]=xscores[len-1-i];        }        xscores=scores;        //输出前三        for(int i=0;i<xscores.length;i++){            //验证数据是否有效            if(xscores[i]>0&&xscores[i]<100){            System.out.println(xscores[i]);            //找到即输出,计数+1            count++;            //找到三个,跳出循环            if(count==3)            break;            }        }    }


0 回复 有任何疑惑可以回复我~

太多错了,主函数都没有,上面的代码方法也没,你调用的是其他页面的方法?

1 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

请问怎么没办法输出前三名,是方法哪里写错了

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信