【发布时间】:2019-10-01 01:09:06
【问题描述】:
我正在尝试从双精度数组中获取最小值和最大值。最大值工作正常,但是最小值似乎总是为零。获得最小值的最佳方法是什么?请注意,在这个练习中我不能使用 for 循环,而是使用 while 循环。
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);
}
}
【问题讨论】:
-
您正在使用 0.0 值初始化最小值(
double[]数组元素的默认值。 -
以下双最小值 = inputHolder[inputCounter];默认情况下将最小值初始化为 0.0。您应该分配 double minimum = Double.MAX_VALUE
-
@akshayapandey 忘记了那里的减号。
-
不,我们最初希望将最小变量分配给最大值,因此当它找到较小的双精度值时,它可以将其分配给最小值。
标签: java arrays double minimum