求均值时,只能“avg=sum/nums.length;”不能“avg=sum/i;”这样吗?

来源:6-6 编程练习

Jcoffeeing

2015-08-13 10:06

如果不可以,为什么?能详细说下吗?

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=nums[i]+sum;

}

        

        // 求平均值

        avg=sum/nums.length;  //avg=sum/i;不可以吗?

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

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

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

}

}


写回答 关注

4回答

  • Little_tom
    2015-08-14 23:50:57
    已采纳

    (刚刚百度到的~我觉得合理的一个解释)
    我们很常做的一件事就是在for循环里定义一个变量并初始化(如上面定义的i,初始化为1),这个变量有可能是为了做循环限制而定义的,而此时变量只做为for循环的局部变量

    循环结束后就不能再使用i这个变量。

    这是C99规定了一种新的for循环语法,这种语法也是从C++借鉴的,考虑到兼容性不建议使用这种写法。

    Jcoffe...

    非常感谢!

    2015-08-24 21:39:23

    共 1 条回复 >

  • heibing007
    2015-08-13 14:14:11

    sorry,刚才答错了,知道原因了,要在循环开始的时候前int i=0,先定义这个i

  • heibing007
    2015-08-13 14:10:25

    i=6,实际上是7个数

  • heibing007
    2015-08-13 14:07:15

    嗯,小伙伴都在考虑中

Java入门第一季(IDEA工具)升级版

0基础萌新入门第一课,从Java环境搭建、工具使用、基础语法开始

1167575 学习 · 18748 问题

查看课程

相似问题