问答详情
源自:6-6 编程练习

为什么除数为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);

}


提问者:慕丝3557115 2018-10-30 16:00

个回答

  • 星辰的泪
    2018-12-18 11:35:05

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

  • 菜鸟编成爱好者
    2018-11-07 14:23:45

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

  • 慕哥1039693
    2018-11-06 09:31:26

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

  • 墨棋丶海棠
    2018-11-02 15:17:48

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


  • 小小小螺号
    2018-10-31 23:45:52

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

  • 书生丶
    2018-10-30 16:23:20

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