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

用带参带返回值不能完成这个吗?

import java.util.Arrays;

public class HelloWorld {

    //完成 main 方法

    public static void main(String[] args) {

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

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

        HelloWorld hello = new HelloWorld();    

        int b = hello.count(scores);

        System.out.println(b);

        

    }

    

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

public int count(int scores[]){

    Arrays.sort(scores);

    int num = 0;

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

        int a = 0;

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

            continue;

        }

        a = scores[i];

        num++;

        if(num > 3){

            break;

        }

        return a;

    }

}

}


请问这样错在哪里呢


正在回答

2 回答

用带参带返回值可以完成:

package test4;

import java.util.Arrays;

public class Test45 {

   //完成 main 方法

   public static void main(String[] args) {

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

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

       Test45 hello = new Test45();    

       int[] b = hello.count(scores);//将返回值赋给数组b

       System.out.println(Arrays.toString(b));//用Arrays.toString方法输出数组b的内容

   }

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

public int[] count(int[] scores){//返回值类型应该为数组int[]

        int[] a = new int[3];//定义数组a的长度

   Arrays.sort(scores);//排序

   int num = 0;

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

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

           continue;

       }


       if(num >= 3){

           break;

       }else{//数组a赋值前三名的成绩

        a[num] = scores[i];

        }

            num++;

   }

        return a;//返回数组a的内容

}

}

改动的地方都有注释,可以看着理解一下

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

你的数组声明就有问题  应该是 int[] scores  = {89, -23, 64, 91, 119, 52, 73};吧  还有就是传参  也应该是public int count(int[] scores)

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

举报

0/150
提交
取消

用带参带返回值不能完成这个吗?

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