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

求解求解求解

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] ;

}

        if(nums[i]<min){

            min=nums[i];

        }

        

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

        

        

        

        // 累加求和

        sum=sum+nums[i];

        

}

        

        // 求平均值

       avg=sum/7;

        

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

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

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

}

}

我想问的是if(max<num[i])

max=num[i];和

if(num[i]>max)

max=num[i]有什么区别

正在回答

4 回答

if(nums[i]>max){

    max=nums[i] ;

}

        if(nums[i]<min){

            min=nums[i];

        }

这个才是你要问的吧?

第一个已经解释了,就是根据题意,将数组nums中最大的值取出来,

任何编程,都是用语言来编写的,所以,我们只要读懂了语言,就不会有什么问题

第一个读为,如果,max大于数组中地nums[i]个数,那判断成立,吧nums[i]的值赋给max,最后,max一定是mums数组中最大的,用JAVA语言来说就是if(nums[i]>max)这句话


第二个,是取他最小的数的,根据题意,如果nums[i]小于min,就将mums[i]的值赋给min,最后,min一定是数组mums中最小的,用JAVA语言来说就是if(nums[i]<min)这句话,

因为判断条件不同,所以值不同,一个取最大数,一个取最小数


如果赶紧对你有用的话,请采纳,谢谢


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

杰杰郭果 提问者

可能你还是误解我的意思呢,if(nums<nim) min=nums;换成 if(min>nums) min=nums;结果是不一样的,为什么不一样
2016-05-23 回复 有任何疑惑可以回复我~
#2

迷途小书童3255334 回复 杰杰郭果 提问者

你用eclipse编写的吗?全部截图过来,或者把源代码全部发过来
2016-05-23 回复 有任何疑惑可以回复我~
#3

迷途小书童3255334 回复 杰杰郭果 提问者

结果肯定不一样啊,第一个取的是最小值,第二个取的是最大值,
2016-05-23 回复 有任何疑惑可以回复我~
#4

迷途小书童3255334 回复 杰杰郭果 提问者

等等,我在看看
2016-05-23 回复 有任何疑惑可以回复我~
#5

杰杰郭果 提问者 回复 迷途小书童3255334

用myeclipse写的。源代码上面不是有吗
2016-05-23 回复 有任何疑惑可以回复我~
#6

迷途小书童3255334 回复 杰杰郭果 提问者

你还是把全部的代码发过来吧,这样我才能看明白,就单单这两个,都是将min取为最小值啊,这个要你全部的代码,才能看出问题
2016-05-23 回复 有任何疑惑可以回复我~
#7

迷途小书童3255334 回复 杰杰郭果 提问者

这两个都是取的最小值,你运行结果中这两个的值为多少?
2016-05-23 回复 有任何疑惑可以回复我~
查看4条回复

这两个求最大值的结果是不一样的:

if(max<nums[i])//意思:假设数组中的某一个数为最大值(max),这个数小于数组里的任何一个数                                                                (nums[i]);

max=nums[i];//当这个最大值(max),经过数组里的数比较之后,发现最后没有比147更大的数了,任何数都<147,

                          所以,结果就是把这个最大值147作为nums[i],并且把这个num[i]赋值给max.求出最大值。

if(nums[i]>max) //意思:假设数组中的第一个数(nums[i]),java编程里的比较顺序就是这样,这个数大于这个数组已经赋值了的最大的数(max)=0,所以从这个角度讲以上数组都是大于0的;             

max=nums[i]  //当这个数(nums[i])是最大的数时,把这个数赋值给了max;就题目整体代码而言,如果这样写最大值也是4。




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

地中海岸线

147改为148
2016-05-23 回复 有任何疑惑可以回复我~

根据题意,它是让你第一个数为最大数,所以

if(max<nums[i])

max=nums[i];

读为,如果,max大于数组中地nums[i]个数,那判断成立,吧nums[i]的值赋给max,

if(nums[i]>max)

max=nums[i]

这个,也是将max变为最大数,意思与前面的一样,没有多少区别

没有什么区别,你要问的第二个是不是 if(nums[i]<min)这个啊?

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

杰杰郭果 提问者

这你都知道,牛
2016-05-23 回复 有任何疑惑可以回复我~
#2

杰杰郭果 提问者

求告诉
2016-05-23 回复 有任何疑惑可以回复我~

你这里就没有num这个啊,你说的是nums吧?

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

杰杰郭果 提问者

对。哈哈。不要在意细节
2016-05-23 回复 有任何疑惑可以回复我~

举报

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

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

进入课程

求解求解求解

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

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

帮助反馈 APP下载

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

公众号

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