Получение среднего квадрата внутри 2D-массива - PullRequest
0 голосов
/ 26 мая 2020

У меня есть такой 2D-массив:

enter image description here

Затем пользователь вводит нечетное значение (длину), а также координаты для расчет среднего значения, например:

enter image description here

Где значение длины уменьшается вдвое и добавляется / вычитается из координат, чтобы сформировать квадрат для расчета среднего значения этот квадрат значений

Это мой l oop, но он неправильно вычисляет среднее

        int counter = 0;
        double sum = 0;
        for(int x = x1; x < x2; x++){
            for(int y = y1; y < y2; y++){
                sum = sum + (array[x][y]);
                counter++;
            }
        }
        average = sum / counter;

Извините за плохие диаграммы

Когда я бегу l oop с этим массивом и значениями, полученными на выходе, которые я получаю, равны 3,5, когда это должно быть 3,2

1 Ответ

0 голосов
/ 26 мая 2020

Думаю, ваша проблема связана с вашими пределами. Не забывайте, что если размер превышает длину, это вызовет исключение IndexOutOfBoundsException.

 for(int x = x1; x <= x2; x++){ // x < x2 must to be x <= x2
        for(int y = y1; y <= y2; y++){ y < y2 must to be y <= x2
            sum = sum + (array[x][y]);
             counter++;
        }
    } 
...