获取二维数组内的平方平均值

Getting average of square inside a 2D array

我有一个这样的二维数组:

然后用户输入一个奇数值(长度)以及用于平均计算的坐标,例如:

其中长度值减半并added/subtracted从坐标形成一个正方形来计算该正方形值的平均值

这是我的循环,但它没有正确计算平均值

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;

抱歉图表不好

当我运行这个数组的循环和提供的值时,我得到的输出是 3.5,而它本应是 3.2

我认为你的问题与你的界限有关。不要忘记如果超过尺寸的长度,这将抛出 IndexOutOfBoundsException。

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