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

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

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

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 回答

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

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

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

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

Jcoffeeing 提问者

非常感谢!
2015-08-24 回复 有任何疑惑可以回复我~

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

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

i=6,实际上是7个数

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

嗯,小伙伴都在考虑中

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

举报

0/150
提交
取消

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

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

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

帮助反馈 APP下载

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

公众号

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