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