Java вычисление среднего числа из другого файла - PullRequest
0 голосов
/ 14 июля 2011
public void computeAverage(String [] names, int [] scores, char [] grades){
    int av = 0;
    for (int i = 0; i < names.length; i++)
        av = (scores[i]++ / 26);
    System.out.print(av);

}

Привет, ребята, выше мой код, чтобы прочитать список результатов теста и вычислить их среднее значение.Есть 26 тестов.У меня проблемы, пожалуйста, помогите!Спасибо

Ответы [ 5 ]

1 голос
/ 14 июля 2011

Давайте разберем это:

  • Вам нужно пройтись по массиву результатов и суммировать каждый результат к текущему итогу

  • Затем необходимо поделить на общее количество баллов. As @ cliff.meyers указал, что это определение среднего

  • Как примечание, вы зацикливаетесь на name.length, но индексируете в баллы. Это плохо.

  • Вы делитесь на жестко закодированную константу. Это тоже плохо.

  • Вам не нужны имена или оценки в функции для вычисления средних значений.

1 голос
/ 14 июля 2011

Проблема в том, что вы продолжаете записывать переменную av во время каждой итерации цикла. Кроме того, похоже, вам не нужны массивы names и grades в качестве параметров, поскольку вы их не используете. Это должно работать лучше:

public void computeAverage(int [] scores)
{
    double average = 0;
    for (int i = 0; i < scores.length; i++)
    {
        average += scores[i];
    }

    average /= scores.length;

    System.out.print(average);
}
0 голосов
/ 14 июля 2011
public static int computAverage(int[] scores)
{
    long sum = 0;
    for(int i : scores)
    sum += i;
    return sum / scores.length;
}
0 голосов
/ 14 июля 2011

Вам необходимо добавить вклад в текущее подсчет:

av += (scores[i] / 26.0);

Возможно, еще лучше разделить на names.length, а еще лучше оставить деление до конца. Наконец, будьте осторожны с целочисленным делением, которое может не соответствовать тому, что вы думаете.

0 голосов
/ 14 июля 2011

Попробуйте сначала добавить их все, а затем разделить на общее количество.Вот как вы рассчитываете среднее ...

...