问答详情
源自:6-6 编程练习

求数组中的最小值

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

提问者:qq_酒千觞梦终醒_0 2015-12-13 11:49

个回答

  • 慕男婶
    2015-12-13 11:54:40
    已采纳

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

    有两种方案来取最小值:

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

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

  • 是王小二呀
    2015-12-13 17:22:33

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

  • qq_酒千觞梦终醒_0
    2015-12-13 16:18:07

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


  • qq_酒千觞梦终醒_0
    2015-12-13 16:17:03

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

    }

    }