计算平均值会抛出system . indexoutofrangeexception异常;例外
本文关键字:indexoutofrangeexception 异常 例外 system 平均值 计算 | 更新日期: 2023-09-27 18:18:03
我正在尝试编写一个金矿勘探程序,该程序以2D数组的形式获取初始数据地图,然后生成一个地图,上面标有所有可能的金矿地点。
然而,当计算平均值以决定是否标记勘探点时,我得到一个"系统"。IndexOutOfRangeException"异常,程序中断。我该如何解决这个问题?事先感谢您的帮助。
for (int i = 1; i < nRows; i++)
{
for (int j = 1; j < nCols - 1; j++)
{
//it is at the line below where the program breaks
double average = (data[i - 1, j] + data[i + 1, j] + data[i, j - 1] + data[i, j + 1]) / 4;
if (data[i, j] > average)
{
map[i, j] = "*";
}
}
}
你走出了你的二维数组的边界。所以修改这部分代码:
for (int i = 1; i < nRows; i++)
{
for (int j = 1; j < nCols - 1; j++)
for (int i = 1; i < nRows - 2; i++) // NOT from 0 to nRows - 1
{
for (int j = 1; j < nCols - 2; j++) // NOT from 0 to nCols - 1
省略边框