猿问

请问大家我这段代码是什么问题?谢谢大家

import java.util.Arrays;

public class HelloWorld {

     //完成 main 方法

    public static void main(String[] args) {

    HelloWorld hello=new HelloWorld();

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

    int[] mals=hello.top(scores);  

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

}

    public void top(int[] nums){

    Arrays.sort(nums);

    int x=0;

    int[] mals=new int[3];

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

    if(x<=3){

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

    continue;

               }

    else{

    x++;

    mals[i]=nums[i];

              }

 }

    return  mals[];              

    }

   }    

    }

    

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

我想用带参带返回值的方法做这道题,所以我又new了一个数组以存前三名的成绩,但是报错了,好像是我的mals数组的写法有问题。想请教大家我这道题怎么错了,以及数组的写法,我经常在表示数组的时候不知道正确的写法。谢谢大家!

宝慕林5339449
浏览 818回答 1
1回答

慕盖茨030889

1.top方法有返回值return,要设置返回类型,不能为void2.System.out.println("考试成绩的前三名为:"+mals);mals是一个数组,直接输出拿不到值。可以让top方法返回一个String的字符串逻辑写的有点乱,可以这样写把mian方法中的mals改成String类型private static String top(int[] nums) { Arrays.sort(nums); //按从小到大排序 String mals = ""; for(int i=1;i<=nums.length;i++){ mals += nums[nums.length-i]+"  "; if(i==3){ break; //跳出当前循环 } } return mals; }
随时随地看视频慕课网APP

相关分类

Java
我要回答