浴火重生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工具)
1168093 学习 · 18754 问题
相似问题