为了账号安全,请及时绑定邮箱和手机立即绑定

为什么除数为i时出错,要为nums.length才对

public class HelloWorld {

    

    public static void main(String[] args) {

        

// 定义一个整型数组,并赋初值

int[] nums = new int[] { 61, 23, 4, 74, 13, 148, 20 };

        

int max = nums[0]; // 假定最大值为数组中的第一个元素

int min = nums[0]; // 假定最小值为数组中的第一个元素

double sum = 0;// 累加值

double avg = 0;// 平均值

        

for (int i = 0; i < nums.length; i++) { // 循环遍历数组中的元素

        // 如果当前值大于max,则替换max的值

    if(nums[i]> max){

        max= nums[i] ;

    }

        

        // 如果当前值小于min,则替换min的值

        if(nums[i]< min){

            min=nums[i];

        }

        

        

        // 累加求和

         sum= sum + nums[i];

        

}

        

        // 求平均值

        avg=sum/i;

        

System.out.println("数组中的最大值:" + max);

System.out.println("数组中的最小值:" + min);

System.out.println("数组中的平均值:" + avg);

}


正在回答

6 回答

for中的i的作用于只存在于for循环中,出了for循环就跟没定义一样,而nums.length是组数的长度,所以除以nums.length才是正确的

1 回复 有任何疑惑可以回复我~
#1

星辰的泪

作用域不是作用于
2018-12-18 回复 有任何疑惑可以回复我~

for循环中定义的i是在for循环这个作用域中,for循环结束i就被回收了,相当于没有定义过,你在外面使用一个没有定义过的变量,怎么可能会有用。

0 回复 有任何疑惑可以回复我~

i属于局部变量,在for循环结束后,i就是未定义的变量了,所以会报错的。

1 回复 有任何疑惑可以回复我~

i是你for循环定义的值好不好,nums.length才是数组的长度,你epl不出错吗,i都没定义


0 回复 有任何疑惑可以回复我~

因为i只是一个索引,索引不是具体的值。

0 回复 有任何疑惑可以回复我~

i初始值为0,除数为0肯定报错;平均数应除以数组的长度

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么除数为i时出错,要为nums.length才对

我要回答 关注问题
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号