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

求大神解答

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 (max<nums[i]){

    max =nums[i];   

}

        if (min>nums[i]){

        min=nums[i];    

        }

        

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

        

        

        

        // 累加求和

        sum= sum+nums[i];

        

}

        

        // 求平均值

       avg=sum/nums.length;

        

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

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

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

}

}

疑问:为什么假设一个max和min值然后对比数组的元素就能比较出最大最小呢?这里假定的是第一个值,比第一个元素小的不止一个,比它大的也不止一个啊!我也尝试过其他元素,而结果都是一样的。我尝试过把max改成ma,然后是错误信息!大神能解答下,max与min不止是命名,还是条件吗?

正在回答

3 回答

遍历数组中所有元素了

刚开始假定[0]是最大的,后期遍历所有元素的过程中,通过比较,就找出来真的最大值了

最小值同理

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

qq_岚风依旧_0 提问者

在比较的过程中max=nums[0]也是在不停地变的吗?
2015-01-28 回复 有任何疑惑可以回复我~
#2

qq_岚风依旧_0 提问者

还是说在遍历过程中,已经给nums数组排序了,然后在替换第一次过后max=nums[i]=148后对比之后的每一个数,if不成立就没有执行,而min=nums[i]=23后,对比20.13.if成立,到nums[i]=4时截止吗?
2015-01-28 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Java入门第一季(IDEA工具)升级版
  • 参与学习       1165150    人
  • 解答问题       17581    个

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

进入课程

求大神解答

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信