2012-05-28 11 views
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; 

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

required: double []
found: no arguments

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

ответ

7

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

private double calculateAverage(double [] marks) 

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

+0

Это массив, называемый отметками, поэтому я изменил его на calculateAverage (метки), но я все равно получаю ту же ошибку. – user1419306

+1

Нет, теперь вы должны получить ошибку 'reauired double []: найдено ArrayList'. –

+0

Да, извините, это правда, так что в чем проблема сейчас? – user1419306

3

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

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

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

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

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

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

+0

Извините, отредактировал код. – user1419306

+0

Это массив, называемый отметками, поэтому я изменил его так, как вы сказали, чтобы вычислить Average (метки), но я все равно получаю ту же ошибку. – user1419306

+0

@ user1419306: Я подозреваю, что вы не получили * ту же ошибку * - только аналогичную (учитывая ваше обсуждение выше). Очень важно * внимательно читать сообщения об ошибках *. –

0

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

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

частного двойной calculateAverage (двойными [] знаки) является объявлением метода, поэтому, когда его называют она должна иметь и аргумент двойного массива

например:

calculateAverage (double_value_array);

Смежные вопросы