为什么在算平均值时用这个表达式会报错:avg=sum/(i+1);求大神解析

来源:6-6 编程练习

阳光一夏

2017-03-19 18:21

public class lianxi2 {

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++){

 if(nums[i]>max){

 max=nums[i];

 }

 else if(nums[i]<min){

 min=nums[i];

 

 }

sum=sum+nums[i];

 }  

avg=sum/(i+1);

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

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

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

}

}


写回答 关注

1回答

  • 宝慕林0312872
    2017-03-19 18:39:44

    i是for循环的局部变量,你的avg=sum/(i+1)    代码是在for之外的,代表什么呢?所以把分母改成nums.length

    阳光一夏

    i是for循环的局部变量,已经被赋予值了,for循环结束后,i这时应该是最后一次循环的值,循环终止后执行后面代码不能被使用吗?是这个原因吗?

    2017-03-20 08:43:54

    共 1 条回复 >

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

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

1165547 学习 · 17586 问题

查看课程

相似问题