2014-03-04 4 views
0

Мне нужно рассчитать среднее значение массива и распечатать его. Что я здесь делаю неправильно?Java: Как передать массивы методу

public class Weight { 
public static void main(String[] args) { 
    int[] value = {98, 99, 98, 100, 101, 102, 100, 104, 105, 
        105, 106, 105, 103, 104, 103, 105, 106, 107, 106, 
        105, 105, 104, 103, 102, 102, 101, 100, 102}; 
    printArray(value); 
} 

public static void printWeightAVG(int[] value) { 
    double average = ((int)value/28.0); 
    System.out.println("The average weight is " + average + " lbs."); 
} 
} 
+3

опечатка: 'PrintArray (значение)' должен быть 'printWeightAVG (значение)', а также необходимость перебирать сам массив – Reimeus

+0

Спасибо, вы знаете, что я делаю, чтобы использовать массив, чтобы получить среднее? – ChaCol

+0

Подумайте, как бы вы сделали это на бумаге сначала – Reimeus

ответ

0
public static void printWeightAVG(int[] value) { 

    int sum =0; 
    for(int count=0; count<value.length; count++) { 
     sum = sum + value[count]; 
    } 
    //double average = ((int)sum/ 28.0); (as in your code) 
    double average = sum/value.length; //(better way) 
    System.out.println("The average weight is " + average + " lbs."); 
} 
+0

Ahh спасибо. Заметки, которые я принимал на массивах, были очень запутанными. Спасибо за разъяснения. – ChaCol

+0

Кроме того, вам не нужно вводить сумму в int, так как ее уже целое число – Chaos

1

Вы пытаетесь разделить Array на номер. Вам нужно разделить сумму чисел в value на 28, или, как бы там ни было много цифр, чтобы получить среднее значение.

Несколько замечаний:

1), а не жестко прописывать количество элементов, вы можете получить его с помощью .length. Поэтому, если sum является суммой всех элементов в value, вы можете сказать average = сумма / value.length.

2) Будьте осторожны с типами. Деление int на float или double приведет к не- int стоимости (которая в большинстве случаев является то, что вы хотите, но вы должны быть осторожны, особенно если требуется точность)

2

массив не один value, это набор значений. Вам нужно итерацию через него с петлей для

int sum = 0; 
for(int i=0; i<value.length; i++) { 
    sum += value[i]; 
} 
System.out.println("average is "+sum/value.length); 

В принципе, что это говорит это «пройти через каждый индекс массива, а затем добавить значение по этому индексу массива переменной суммы». , если массив равен: [1,4,3], то value[1] будет 4. Если вы перебираете каждое значение переменной, вы можете отдельно ссылаться на все, что содержится в массиве.

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