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

有个错误求大神帮助一下下

有个错误求大神帮助一下下

飞行烤鸭 2017-01-02 21:15:09
package study;import java.util.Arrays;public class Test8_1 { public static void main(String[] args) {  // TODO Auto-generated method stub  Test8_1 test=new Test8_1();  int scores[]=new int[]{89,-23,64,91,119,52,73};  test.sort(scores);  for(int j=0;j<scores.length;j++){   test.valid(scores[j]);  } } public void sort(int score[]){  Arrays.sort(score);  int num=0;  int max[]=new int[3];  for(int i=(score.length-1);i>=0;i--){   if(score[i]>=0&&score[i]<=100){    max[num]=score[i];                                                                    //这句老报错呢,在eclipse上,运行前没有错误,运行之后会出现错误     /* 错误如下:考试成绩第1名分数为91*考试成绩第2名分数为89*考试成绩第3名分数为73*Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 *at study.Test8_1.sort(Test8_1.java:22) *at study.Test8_1.main(Test8_1.java:10)*/          num++;    System.out.println("考试成绩第"+num+"名分数为"+score[i]);   }   else if(num<=2)    continue;   else {    break;   }  } } public void valid(int a){  if(a>=0&&a<=100)   System.out.println("成绩"+a+"有效");  else   System.out.println("成绩"+a+"无效"); }}
查看完整描述

2 回答

已采纳
?
快乐的时光

TA贡献79条经验 获得超48个赞

  int max[]=new int[3];这一句出现问题

89,-23,64,91,119,52,73    除开-23,119无效还剩5个

有效的数字是5个,所以你的数组给的空间少了一个 把那个3改成4就好了。

希望能够对你有所帮助。谢谢


查看完整回答
1 反对 回复 2017-01-02
?
快乐的时光

TA贡献79条经验 获得超48个赞

程序写的不错 加油

查看完整回答
1 反对 回复 2017-01-02
?
晨习

TA贡献1条经验 获得超0个赞

num 的值给个条件,小于等于数组的length,就不会出现数组下标越界的异常了
查看完整回答
反对 回复 2017-01-03
  • 2 回答
  • 0 关注
  • 1292 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信