首页 > 解决方案 > 获取二维数组中正方形的平均值

问题描述

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

在此处输入图像描述

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

在此处输入图像描述

其中长度值减半并从坐标中添加/减去以形成一个正方形以计算该值平方的平均值

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

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

标签: javaarraysloopsmultidimensional-arrayaverage

解决方案


我认为你的问题与你的界限有关。不要忘记如果超过维度的长度,这将抛出 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++;
    }
}

推荐阅读