我們必須通過一種方法來傳遞陣列,該方法采用最高、最低和平均值,然后將它們列印出來。
我在獲取分配給 minNum 的最低值時遇到問題。
謝謝!
public static void averageMaxMinMethod(double[] arrayOfDoubles){
double maxNum = 0;
double minNum = 0;
for(int i = 0; i < arrayOfDoubles.length; i ){
if(arrayOfDoubles[i] > maxNum)
maxNum = arrayOfDoubles[i];
if(arrayOfDoubles[i] < minNum)// <=== My poor attempt of getting the lowest value
minNum = arrayOfDoubles[i];
}
System.out.println("Highest given double is: " maxNum);
System.out.println("Lowest given double is: " minNum);
}
public static void main(String[] args) {
//1-3: Set up Scanner object to collect user's input on the size of array.
Scanner keyboard = new Scanner(System.in);
System.out.println("How many double numerical entries do you have?");
//4: Declare an array of size sizeOfArray
int sizeOfArray = keyboard.nextInt();
//Initialize array
double[] arrayOfDoubles;
arrayOfDoubles = new double[sizeOfArray];
for(int i = 0; i < sizeOfArray; i ){
//5: Use the Random number Class and walk over the array
Random randomNum = new Random();
arrayOfDoubles[i] = randomNum.nextDouble(0.0 , 100.0);
}
//6: Invoke SumMethod
sumMethod(arrayOfDoubles);
averageMaxMinMethod(arrayOfDoubles);
}
uj5u.com熱心網友回復:
double maxNum = 0;
double minNum = 0;
這僅在最大數量至少為零且最小值最多為零時才有效 - 否則,不會更新這些值。
相反,使用陣列中的第一個元素,它至少與最小值一樣大,至少與最大值一樣小。
double maxNum = arrayOfDoubles[0];
double minNum = arrayOfDoubles[0];
當然,您不需要在第一次回圈迭代中比較這些,因此您可以從 1 開始回圈索引:
for(int i = 1; i < arrayOfDoubles.length; i ){
uj5u.com熱心網友回復:
其他人已經指出了您在當前實作中犯的錯誤,但是您也忘記了計算平均值。你實際上并沒有撰寫代碼來做到這一點,Java包含DoubleSummaryStatistics這可以給你max的min,和average。喜歡,
public static void averageMaxMinMethod(double[] arrayOfDoubles) {
DoubleSummaryStatistics dss = DoubleStream.of(arrayOfDoubles).summaryStatistics();
System.out.println("Highest given double is: " dss.getMax());
System.out.println("Lowest given double is: " dss.getMin());
System.out.println("Average is: " dss.getAverage());
}
uj5u.com熱心網友回復:
如果您需要最大值、最小值和平均值,您可以使用DoubleStream和DoubleSummaryStatistics:
double[] arrayOfDoubles = {5.1, 3.7, -2.9, 4.3, -11.2};
DoubleSummaryStatistics statistics = Arrays.stream(arrayOfDoubles).summaryStatistics();
System.out.println("Highest: " statistics.getMin());
System.out.println("Lowest: " statistics.getMax());
System.out.println("Average: " statistics.getAverage());
輸出:
Highest: -11.2
Lowest: 5.1
Average: -0.2
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/368033.html
上一篇:保留 , 讀取XML時
