浴火重生37394
2021-11-20 12:52
int[] scores = new int[5]; System.out.println("请输入5个成绩:"); for(int j=1;j<=scores.length;j++){ System.out.print("第"+j+"个学生的成绩:"); scores[j] = new Scanner(System.in).nextInt(); } int min = scores[0]; int max = scores[0]; double avg=0; int sum=0; for(int i=0;i<scores.length;i++){ if(min>scores[i]) min = scores[i]; if(max<scores[i]) max = scores[i]; sum+=scores[i]; avg = sum/(scores.length); } System.out.println("最小值:"+min); System.out.println("最大值:"+max); System.out.println("平均值:"+avg);
请输入5个成绩:
第1个学生的成绩:60
第2个学生的成绩:70
第3个学生的成绩:80
第4个学生的成绩:65
第5个学生的成绩:75
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 5
at HelloWorld.main(HelloWorld.java:13)
与目标 VM 断开连接, 地址为: ''127.0.0.1:55891',传输: '套接字''
进程已结束,退出代码为 1
scores[j-1] = new Scanner(System.in).nextInt(); 可以这样试试,原来的是因为scores数组从第二个位置也就是scores[1]开始填充数据,数组超出界限报错
int[] scores = new int[5]; System.out.println("请输入5个成绩:"); //j应该从0开始,不然你之前定义的长度new int[5],就会从scores[1]开始,scores[0]就没了 for(int j=0;j<scores.length;j++){ System.out.print("第"+(j+1)+"个学生的成绩:"); scores[j] = new Scanner(System.in).nextInt(); } int min = scores[0]; int max = scores[0]; double avg=0; int sum=0; for(int i=0;i<scores.length;i++){ if(min>scores[i]) min = scores[i]; else if(max<scores[i]) max = scores[i]; sum+=scores[i]; avg = sum/scores.length; } System.out.println("最小值:"+min); System.out.println("最大值:"+max); System.out.println("平均值:"+avg);
avg = sum/(scores.length);
这里不用括号
Java入门第一季(IDEA工具)升级版
1165172 学习 · 17581 问题
相似问题