[英]Finding the max value of an array
我一直在尋找答案,但是嘗試以下方法並沒有太大的運氣。
我目前正在學習入門編程課,並且面對一個練習,我需要編寫兩個函數(即返回值的方法),
a)返回最大值,並且
b)中值,來自雙精度值數組。
下面是我在做什么的代碼。 我已經成功創建了一種方法,該方法允許用戶輸入數組元素的數量並使用值對其進行初始化。 但是,我很難獲得計算最大值的方法。 我被明確告知要使用Math.max方法。 但是,每當我嘗試運行代碼時,用戶初始化數組后都會收到以下錯誤消息:
"Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The method max(double, double) in the type Math is not applicable for the arguments (double, double[])"
根據我在API中閱讀的內容, Math.max
可以處理雙Math.max
類型。 我對如何解決這個問題一無所知。 我有需要創建一個循環的感覺,但印象是foreach
循環是等效的。
所有答復將不勝感激。
package com.gc01.lab2;
import java.util.Scanner;
public class exercise22 {
private static double [] numberInput(){
Scanner input = new Scanner (System.in);
System.out.println("How many numbers are in the array?");
int count = input.nextInt();
double [] array = new double [count];
for (int i = 0; i < count; ++i){
System.out.println("Enter number " + i + ": ");
array [i] = input.nextDouble();
}
return array;
}
private double maximum (double [] array){
double max = 0.0;
for (double value : array){
max = Math.max(0.0, array);
}
return max;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
final exercise22 object = new exercise22 ();
System.out.println("The maximum number inputted is " +
object.maximum(object.numberInput()));
}
}
您當前正在將整個數組傳遞給Math.max(),而不僅僅是傳遞值。 要解決此問題,請更改max = Math.max(0.0, array);
到max = Math.max(0.0, value);
。
此外,您將始終將其與0.0進行比較。 在遍歷元素之前,應將max設置為0.0,然后執行max = Math.max(max, value);
以便將其與當前最大值進行比較。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.