亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

使用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 關注
  • 266 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號