0

私は答えを探しましたが、以下を機能させようとしてもあまり運がありませんでした。

私は現在、プログラミングの入門クラスを受講しており、次の 2 つの関数 (つまり、値を返すメソッド) を記述する必要がある演習に直面しています。

a) double 値の配列から、最大値と
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.maxdouble型を処理できます。私はこれを修正する方法について少し無知です。ループを作成する必要があると感じていますが、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()));

    }

}
4

1 に答える 1

1

現在、値だけではなく、配列全体を Math.max() に渡しています。これを修正するには、に変更max = Math.max(0.0, array);max = Math.max(0.0, value);ます。

さらに、常に 0.0 と比較します。要素をループする前に max を 0.0 に設定してからmax = Math.max(max, value);、現在の最大値と比較する必要があります。

于 2013-10-08T17:26:28.627 に答える