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

使用for循环在数组中查找最大值和最小值?

使用for循环在数组中查找最大值和最小值?

呼如林 2022-11-02 10:13:28
试图在 java 中找到随机生成的数组的最小值/最大值。我的代码正在寻找最大值,但是我不确定为什么当我尝试运行它时,最小值每次都会出现 0.0。public static void main(String[] args) {    double array1[] = new double [10];    int n = array1.length;    double max = array1[0];    double min = array1[1];    System.out.println("Array: ");    for (int i=0; i<n; i++) {        array1[i] = Math.floor((Math.random() * 100) + 1);        System.out.print(array1[i]+ " | " );        if (array1[i] > max) {             max = array1[i];        }         if (min > array1[i]) {             min = array1[i];            }        } }
查看完整描述

4 回答

?
慕标琳琳

TA贡献1830条经验 获得超9个赞

据我所知,最小值为 0.0 的原因是因为它是空数组中元素的默认值,所以当您尝试在整个随机生成的数组中比较最小值仅为 1 时,内部的值min 变量永远不会被更新。尽管数组中的元素尚未初始化,但您已经将 min 指定为数组的第二个元素。尝试在比较循环之前处理的不同循环中初始化数组,或者将 min 变量分配为随机生成器的最大值,然后它可能会顺利运行。


for(int i= 0;i<n;i++)

   array1[i] = Math.floor((Math.random() * 100) + 1);

max = array[0];

min = array[0];

for(int i = 1;i<n;i++)

{

  System.out.print(array1[i]+ " | " );

  //continue ...

}

或这个


min = 100;

max = 1;

for(int i = 0; i<n;i++)

{

   //continue ...

}


查看完整回答
反对 回复 2022-11-02
?
HUX布斯

TA贡献1876条经验 获得超6个赞

一种相当标准的方法是使用“最坏情况”值初始化最小/最大变量:

double max = Double.MIN_VALUE;
double min = Double.MAX_VALUE;

这也将解决您的问题,因为您不会生成任何低至 的值0.0,这是您访问数组以将值分配给minand时所保存的值max

此外,在您的循环中,您可以简化为:

max = Math.max(max, array[i]);
min = Math.min(min, array[i]);


查看完整回答
反对 回复 2022-11-02
?
阿晨1998

TA贡献2037条经验 获得超6个赞

    // using forloop

// max number in arrry

    const arr = [2, 3, 5, 10, 8, 3];

    let max = 0;

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

      if (arr[i] > max) {

        max = arr[i];

      }

    }

    console.log(max);

    

    // max number in arrry

    let min = 100;

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

      if (arr[i] < min) {

        min = arr[i];

      }

    }

    console.log(min);


查看完整回答
反对 回复 2022-11-02
?
GCT1015

TA贡献1827条经验 获得超4个赞

//find maximum  and min number in array using funtion


const maxArrayNum = (arr) => {

  let max = Math.max(...arr);

  return max;

};


const minArrayNum = (arr) => {

  let min = Math.min(...arr);

  return min;

};


const maxNum = maxArrayNum([3, 4, 2, 1]);

console.log(maxNum);

const minNum = minArrayNum([3, 4, 2, 1]);

console.log(minNum);


查看完整回答
反对 回复 2022-11-02
  • 4 回答
  • 0 关注
  • 330 浏览

添加回答

举报

0/150
提交
取消
微信客服

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

帮助反馈 APP下载

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

公众号

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