2

コード:

 ArrayList <Integer> marks = new ArrayList();

 String output = "Class average:" + calculateAverage() + "\n" + "Maximum mark:" +  
 calculateMaximum() + "\n" +"Minimum mark:" + calculateMinimum() + "\n" + "Range of 
 marks:" + range;

 analyzeTextArea.setText(output);

 private double calculateAverage(double [] marks) {
 double sum = 0;
 for (int i=0; i< marks.length; i++) {
 sum += marks[i];
 }
 return sum / marks.length;
 }

文字列内の他の要素 (最小値、最大値、および範囲) は無視しますが、この行では、

 String output = "Class average:" + calculateAverage() + "\n" + "Maximum mark:" +  
 calculateMaximum() + "\n" +"Minimum mark:" + calculateMinimum() + "\n" + "Range of 
 marks:" + range;

エラーが発生します:

必須: double []
検出: 引数なし

このエラーが発生する理由と、何を変更すればよいですか?

4

4 に答える 4

7

この方法で calculateAverage メソッドを呼び出しています: calculateAverage()、引数なし。しかし、メソッドは次のように宣言されています。

private double calculateAverage(double [] marks) 

したがって、 type の引数が 1 つ必要double[]ですが、何も渡しません。

于 2012-05-28T18:57:26.537 に答える
3

これを見てください:

String output = "Class average:" + calculateAverage() + ...

平均を計算するとはどういう意味ですか? 平均するデータをメソッドに提供する必要があります。calculateMaximumなどにも同じことが当てはまりますcalculateMinimum。コンテキストがなければ、これらのメソッドは何もできません。

実際のマークはどこに保存されていますか? おそらく、マークを格納するある種の変数があるので、それを渡します。例えば:

String output = "Class average:" + calculateAverage(actualMarks) + ...

...明らかに実際の変数、またはマークを保存するために使用しているものを除きます。

于 2012-05-28T18:57:47.180 に答える
1

private double calculateAverage(double []marks) はメソッド宣言であるため、呼び出されるときは double 配列の引数と引数が必要です

例えば:

calculateAverage(double_value_array);

于 2012-05-28T19:08:27.807 に答える
0

次のように呼び出すことができます。

double d[] = {1, 2, 3};
double ret = calculateAverage(d);
System.out.println(ret);
于 2012-05-28T19:03:37.840 に答える