自己輸入,這個代碼錯在哪里呢
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
2022-02-09
2022-01-18
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);2021-11-20
這里不用括號