计算平均值会抛出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] = "*";
                }
            }
        }

计算平均值会抛出system . indexoutofrangeexception异常;例外

你走出了你的二维数组的边界。所以修改这部分代码:

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

省略边框