簡體   English   中英

查找數組的最大值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM