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 ...
}

TA貢獻1876條經驗 獲得超6個贊
一種相當標準的方法是使用“最壞情況”值初始化最小/最大變量:
double max = Double.MIN_VALUE; double min = Double.MAX_VALUE;
這也將解決您的問題,因為您不會生成任何低至 的值0.0
,這是您訪問數組以將值分配給min
and時所保存的值max
。
此外,在您的循環中,您可以簡化為:
max = Math.max(max, array[i]); min = Math.min(min, array[i]);

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

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);
添加回答
舉報