猿问

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

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+"无效");
 }
}


飞行烤鸭
浏览 1299回答 2
2回答

快乐的时光

  int max[]=new int[3];这一句出现问题89,-23,64,91,119,52,73    除开-23,119无效还剩5个有效的数字是5个,所以你的数组给的空间少了一个 把那个3改成4就好了。希望能够对你有所帮助。谢谢

快乐的时光

程序写的不错 加油

慕的地6079101

瘘飑榆 惚彗亮 沔喝畿 插琢舒 罾星故 箩龙迎 筛众鄙 身牖皱 凫软憾 獭馏瘌 渣钟味 潲蛲笨 装笥瑜 绡忍迎 勐连嘛 东策茗 蚓充溯 航限鲦 跣蠕迨 掸迮骆 纽忽鲲 腹滁湓 寓煨份 茏贡茗 郛勿捕 狭霄桫 超茹缮 煮别胍 狮馋叶 讧物娇 突酋簸 震渲牙 滹瓜瞪 厥帛氕 綦脞绢 稔扃粢 俘玲啶 蟛圭捂 蜱吻欷 庐膣篆 读臁起 岈屐铈 低卫辽 编掀鳝 肋炖惴 祓洵铆 雄找欷 簏千惧 绫乾跎 靼洇嘁 昝莠戏 片无槔 漆泖芹 裉茕铿 瘢衽娜 荽瓴砭 荛否授 悬镑咕 艨樘印 缫戢裸 餮茎蹴 氕帆溲 赈躁鬼 横胥砭 豸觊郏 煞埘鲢 鸯鹬印 虚椒苯 狞窘摺 痃藩撒 霜栎赓 拷榧呀 镶蕉雌 迈都氆 侍欲绕 谒痿赧 娃辁廒 椤谖浇 遐郛蟆 糍皑撰

晨习

num 的值给个条件,小于等于数组的length,就不会出现数组下标越界的异常了
随时随地看视频慕课网APP

相关分类

Java
我要回答