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

比较值大小,然后替换,为什么用三目运算得出的结果不对啊

for(int i=0;i<nums.length;i++){
     max=nums[0]>nums[i]?nums[0]:nums[i];
     min=nums[0]<nums[i]?nums[0]:nums[i];
     }
     /*最后得出的结果是最大值:63
                       最小值是:20
       是不是比较之后赋值给max一直都是nums[0],然后最小值只是比较了nums[5],然       后min就是20。
     */


正在回答

5 回答

你的这个比较每次都是拿nums[0]和每一个数比较,最后的结果其实就是数组第一个和数组最后一个的比较结果。

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

邬小艾 提问者

的确是这样的。
2015-12-24 回复 有任何疑惑可以回复我~
#2

邬小艾 提问者

可不可以让每次比较后的值赋给max和min呢,怎么写呢?
2015-12-24 回复 有任何疑惑可以回复我~
#3

Hello橙子 回复 邬小艾 提问者

int[] nums = {32871,32,23,12,44,53,788,890,2234,28885,87988,99,0,-1}; int max = nums[0]; int min = nums[0]; for(int i =0;i<nums.length;i++){ if(nums[i] > max){ max = nums[i]; } if(nums[i] < min){ min = nums[i]; } }
2015-12-24 回复 有任何疑惑可以回复我~

二楼记得把max和min初始化一下就行了


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

小伙子有前途

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

for(int i=0;i<nums.length;i++){

     max=max>nums[i]?max:nums[i];

     min=min<nums[i]?min:nums[i];

     }

     /*最后得出的结果是最大值:63

                       最小值是:20

       是不是比较之后赋值给max一直都是nums[0],然后最小值只是比较了nums[5],然       后min就是20。

     */


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

你可以把min那一句重新for循环一次

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

邬小艾 提问者

但是最大值也不对啊
2015-12-24 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

比较值大小,然后替换,为什么用三目运算得出的结果不对啊

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