當我運行該程序時,它會查找最大值,但總是打印0.0作爲最小值。查找數組的最小值和最大值
當我使用Double.POSITIVE_INFINITY和Double.NEGATIVE_INFINITY而不是將最小值和最大值設置爲x [0]時,它可以正常工作。
使用Math.min和Math.max也給我同樣的錯誤,但也適用於Double.POSITIVE_INFINITY和Double.NEGATIVE_INFINITY。我看了其他幾個類似的問題,我不允許使用Array.sort或任何其他人發佈的建議。我只是想知道爲什麼設置兩個變量到x [0]只能用於查找最大數字,無論我是首先聲明該變量,第二次還是將其設置爲相等(Double largest,smallest = x [0]) 。
public class MaxAndMin {
public static void main (String[] args) {
Scanner s= new Scanner(System.in);
System.out.println("How many numbers would you like to enter?");
int n= s.nextInt();
double[] x= new double[n];
double smallest= x[0]; //double smallest= Double.POSITIVE_INFINITY;
double largest= x[0]; //double largest= Double.NEGATIVE_INFINITY;
for (int i=0; i<x.length; i++) {
x[i]= kbd.nextDouble();
if (x[i] > largest) {
largest = x[i];
} else if (x[i] < smallest) {
smallest = x[i];
}
}
System.out.println("Smallest number: " + smallest + " Largest number: " + largest);
}
}
'x [0] == 0',因爲新的雙數組元素被初始化爲零。 –