尚方寶劍之說(shuō)
2019-04-18 18:15:19
我試圖從一系列雙打中獲得最小值和最大值。最大值工作正常,但最小值似乎總是為零。獲得最低價(jià)值的最佳方法是什么?請(qǐng)注意,我不能在本練習(xí)中使用for循環(huán),而是使用while循環(huán)。public class LoopingFloats {
public static void main(String[] args) {
double[] inputHolder = new double[5];
int inputCounter = 0;
double total = 0.0d;
double average = 0.0d;
double maximum = 0.0d;
double minimum = inputHolder[inputCounter];
double interestRate = 0.20d;
double interestAmount = 0.0d;
Scanner scnr = new Scanner(System.in);
while(inputCounter <= 4){
System.out.println("Enter number " + (inputCounter + 1) + ": ");
inputHolder[inputCounter] = scnr.nextDouble();
if(inputHolder[inputCounter] > maximum){
maximum = inputHolder[inputCounter];
}
if(inputHolder[inputCounter] < minimum){
minimum = inputHolder[inputCounter];
}
total = total + inputHolder[inputCounter];
inputCounter += 1;
}
}
average = total / 5;
interestAmount = total * interestRate;
System.out.println("Total: " + total);
System.out.println("Average: " + average);
System.out.println("Maximum: " + maximum);
System.out.println("Minimum: " + minimum);
System.out.println("Interest for total at 20%: " + interestAmount);
}}
3 回答

慕村225694
TA貢獻(xiàn)1880條經(jīng)驗(yàn) 獲得超4個(gè)贊
問(wèn)題出在這一行:
double minimum = inputHolder[inputCounter];
Java將新變量和新數(shù)組的所有元素初始化為0值。看這里。
因此,默認(rèn)情況下,您的minimum
變量設(shè)置為0,如果您的數(shù)組的值大于0,則您的minimum
變量將不會(huì)更新,因?yàn)?小于所有其他正值。
您需要做的是將其設(shè)置為一個(gè)非常大的值,例如99999,或者您可以使用Double.MAX_VALUE
它來(lái)為您提供double可以存儲(chǔ)的最大值。

開(kāi)滿(mǎn)天機(jī)
TA貢獻(xiàn)1786條經(jīng)驗(yàn) 獲得超13個(gè)贊
除了變量的初始化之外,一切似乎都沒(méi)問(wèn)題minimum
。在inputHolder[inputCounter] = scnr.nextDouble();
語(yǔ)句后的while循環(huán)中初始化它
inputHolder[inputCounter] = scnr.nextDouble(); if (inputCounter == 0) minimum = inputHolder[inputCounter];
希望這能解決你的問(wèn)題。
添加回答
舉報(bào)
0/150
提交
取消