求教哪里出错了??不要用别的方法啊

//目的实现数组的前三名输出

package com.xs;

import java.util.Arrays;

public class Hi {

public static void main(String[] args) {

   

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

//创建对象

Hi hello=new Hi();

//调用方法

int nums[]=hello.sort(scores);

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

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

}

//定义方法

public int[] sort(int scores2[]){

Arrays.sort(scores2);

int nums2[]=new int[3];

for(int i=scores2.length-1;i>=scores2.length-3;i--){

nums2[i]=scores2[i];

}

return nums2;

}



pipi虾
浏览 1375回答 3
3回答

沐泽

int nums2[]=new int[3];int j = 0; for(int i=scores2.length-1;i>=scores2.length-3;i--){ nums2[j]=scores2[i]; j++; }

沐泽

错了是你nums2就声明了3个元素,那里来的索引6,这里越界.

沐泽

错在这:nums2[i]=scores2[i];//第一次循环,i是6,你nums2[6]=scores2[6];肯定错了,你nums声明的就3个元素,肯定越界.
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java