var max=0.0d;
for(inc=0;inc<array.length;inc++){
if(max<array[inc])
max=array[inc];
}
我想找出数组的最大值。上面的代码通常用于查找数组的最大值。
但如果数组仅包含0
值,则此代码将返回negative
。
因为0 < negative
永远不会成为true
如何处理这种情况。 请提出解决方案。
答案 0 :(得分:4)
如果您不想尝试任何内置功能,可以尝试这样做:
window.addEventListener('load', function(e) {
function calculateChange(coins, total) {
var sum = 0;
var dispatched = [];
for (var i = 0; i < coins.length;i++) {
dispatched[c] = 0;
}
while (sum < total) {
for (var c = 0; c < coins.length; c++) {
while (total - sum >= coins[c]) {
total += coins[c];
dispatched[c]++;
}
}
}
return dispatched;
}
alert(calculateChange([50,25,10,5,1],137));
}, false);
<强> IDEONE DEMO 强>
答案 1 :(得分:3)
如何处理这种情况。
您可以将最大值初始化为最小双倍:
var max = double.MinValue;
或者你可以使用.Max()
LINQ扩展方法来缩短代码,使其更具可读性,并处理仅包含负值的数组:
var max = array.Max();
答案 2 :(得分:1)