double lowestNum = priceArray[0]; //setting a default value just in case none of the
//cases passes the if statement
for (int i = 1; i < priceArray.length; i++) {
if (priceArray[i] < priceArray[i - 1]) {
lowestNum = priceArray[i]; //what I'm trying to do is rewrite this
//value to the "leastCost" variable
}
}
System.out.println("The lowest number is: " + lowestNum);
}
在这段代码中,我最终获得0,priceArray [3] = {2.2,2.4,3.3}。如果我改变:
lowestNum = priceArray[i];
到
lowestNum += priceArray[i];
当我得到2.2时,我最终会得到3.3。有关如何做到这一点的任何建议吗?
答案 0 :(得分:0)
将此if
替换为:
if (priceArray[i] < lowestNum) {
lowestNum = priceArray[i]; //what I'm trying to do is rewrite this
}
实际上,您的代码正在将数组的元素与之前的元素进行比较。您未与lowestNum
中存储的已保存的最低值进行比较。
答案 1 :(得分:0)
if (priceArray[i] < priceArray[i - 1])
应替换为
if (priceArray[i] < lowestNum)
答案 2 :(得分:0)
您需要与当前最低值进行比较:
for (int i = 1; i < priceArray.length; i++) {
if (priceArray[i] < lowestNum) {
lowestNum = priceArray[i];
}
}
答案 3 :(得分:0)
<强> 1。在设置默认值之前,请检查阵列是否为空。
<强> 2。您的情况有误。您需要将目前由“lowestnum”持有的号码与下一个可能的候选人进行比较,直到没有更多的号码可以检查。
if(priceArray[i] < lowestNum){
lowestNum = priceArray[i];
}
注意:有更有效的方法(算法...查找“搜索算法”)来实现你想要做的事情,你当然不需要对它们进行编程,因为它们通常已经被编程到最好的程序在各自的STL(标准模板库)中为每种编程语言提供可能的效率。
3. 在寻求帮助之前,请先尝试一下您的问题。这是非常基本的,如果您要求为遇到的任何问题提供现成的解决方案,您将永远不会学到任何东西......我建议您阅读任何编程书的前2或3章,了解您有兴趣学习的语言。 ..
希望现在有所帮助......