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

求数组中的最小值

为什么数组中的最小值:20,而不是4呢?数组中一一遍历后应该会得到最小值为4不是吗?

正在回答

4 回答

如果没有取道最小值4,说明你的代码写错了。

有两种方案来取最小值:

1、在循环中假定一个最小值,有比这个最小值还小的,就更新这个最小值;然后循环完毕之后,最小值就出来了。

2、还有一个偷懒的方法,就是先把数组升序排序,然后取出数组的第一个元素,就肯定是最小值。

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

qq_酒千觞梦终醒_0 提问者

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

第二个if条件后面多了一个    ;   删除即可

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

我对过代码了,貌似并没有错,可是不懂为什么就是得不到最小值


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

是王小二呀

第一:加上“;”之后你的if后面没有需要执行的语句了,所以等于没用上; 第二:输出20的原因是for循环遍历了一下你的数组,遍历意味着i的值停留在(nums.length-1), 第三:由上一步得出min=nums[i]代表将nums[6]值赋给了min,也就是20 ,所以输出20
2015-12-13 回复 有任何疑惑可以回复我~

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=sum+nums[i];

        

        

}

        avg=sum/nums.length;

        // 求平均值

       

        System.out.println("数组中的和为:"+sum);

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

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

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

}

}


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

举报

0/150
提交
取消

求数组中的最小值

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