обязательно: double [] найдено: аргументов нет

Код:

 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;

Я получаю ошибку:

required: double []
found: no arguments

Почему я получаю эту ошибку и что я должен изменить?

Ответы на вопрос(4)

Решение Вопроса

Вы вызываете метод CalculateAverage следующим образом:calculateAverage()без каких-либо аргументов. Но метод объявлен так:

private double calculateAverage(double [] marks) 

Таким образом, требуется один аргумент типаdouble[], но вы ничего не пропустите.

 user141930628 мая 2012 г., 21:21
Да, извините, это правда, так в чем же проблема сейчас?
 28 мая 2012 г., 21:18
Нет, теперь вы должны получить ошибкуreauired double[]: found ArrayList.
 user141930628 мая 2012 г., 21:31
Все равно не работает, я пробовал оба пути и получаю одинаковые ошибки.
 28 мая 2012 г., 21:27
Проблема в том, что ArrayList & lt; Integer & gt; не является массивом двойников. Если диспетчер поезда просит у вас билет, вы не даете ему туфли, не так ли? То же самое и здесь: для метода требуется double [], вы должны задать ему double []. Вам нужно преобразовать свой список & lt; Integer & gt; в массив двойников. Или вы должны изменить метод, чтобы получить список & lt; Integer & gt; в качестве аргумента, а не двойной [].
 user141930628 мая 2012 г., 21:17
Это массив с именем marks, поэтому я изменил его на calcaverage (marks), но все равно получаю ту же ошибку.

private double convertAverage (double [] marks) - это объявление метода, поэтому при его вызове он должен иметь аргумент double array

например:

calculateAverage (double_value_array);

Посмотри на это:

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

Что это значит для расчета среднего значения? Вы должны предоставить методу некоторые данные для усреднения. То же самое будет верно дляcalculateMaximum, calculateMinimum и т.д. Без какого-либо контекста эти методы не могут ничего делать.

Где хранятся ваши фактические оценки? Предположительно у вас есть какая-то переменная, хранящая метки - так что передавайте это. Например:

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

... за исключением, очевидно, реальной переменной или того, что вы используете для хранения меток.

 user141930628 мая 2012 г., 21:09
Это массив с именем mark, так что я изменил его, как вы сказали, для CalculateAverage (marks), но я все еще получаю ту же ошибку.
 user141930628 мая 2012 г., 21:08
Извините, отредактировал код.
 29 мая 2012 г., 07:43
@ user1419306: Я подозреваю, что вы не получилиsame ошибка - просто похожая (учитывая ваше обсуждение выше). Это очень важно дляread error messages carefully.

Вы можете назвать это так:

double d[] = {1, 2, 3};
double ret = calculateAverage(d);
System.out.println(ret);

Ваш ответ на вопрос