package com.software;public class bianChen6_6 { public static void main(String[] args) { int scores[] = new int[]{61,23,4,74,13,148,20}; int max=scores[0]; int min=scores[0]; int i = 0; double count=0; double avg=0; for(;i<scores.length;i++){ // 如果当前值大于max,则替换max的值 if(scores[i]>max){ max = scores[i]; } // 如果当前值小于min,则替换min的值 if(scores[i]<min){ min = scores[i]; } //累加求和 count = count+scores[i]; } //求平均值 avg = count%scores[i]; System.out.println("数组中的最大值是"+max); System.out.println("数组中的最小值是"+min); System.out.println("数组的和值是"+count); System.out.println("数组的平均值是"+avg); }}这是我的代码,运行后怎么提示超出数组长度?帮我看一哈。
6 回答
已采纳
IT界小嫩草一枚
TA贡献4条经验 获得超6个赞
为什么会报数组越界。 因为当循环跳出的那一刻是i=scores.length, 即i=7, 在你求平均值的时候写scores[i]就是scores[7], 你定义的数组下标最大是6, 所以越界
求平均值。 应该是综合除以个数,即count÷i或者count÷scores.lengh(用这种方式比较好)。
count÷scores.length应该写成count/scores.length, %是取余。
正确的输出结果是:
数组中的最大值是148
数组中的最小值是4
数组的和值是343.0
数组的平均值是49.0
希望能帮到你:)
添加回答
举报
0/150
提交
取消