我有一个这样的二维数组。
然后用户输入一个奇数值(长度)以及坐标来计算平均数,例如:
将长度值减半,然后与坐标相加减,形成一个正方形,计算该正方形的平均值。
这是我的循环,但它不能正确计算平均数。
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。
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++;
}
}