【发布时间】:2016-11-14 15:55:58
【问题描述】:
我正在尝试编写一个黄金勘探程序,该程序采用 2D 数组形式的初始数据地图,然后生成一张地图,上面标有所有可能的黄金地点。
但是,在计算平均值以确定是否标记探矿点时,我收到“System.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] = "*";
}
}
}
【问题讨论】:
-
你确定标签 C 适合这个问题吗? C 没有异常
-
是的,那是我的错,我还在习惯美式键盘,所以我按了 Enter 键,以为我在按哈希键。
-
data[i + 1, j]很可能在外部循环末尾的i == nRows - 1超出范围。 -
data[i + 1, j]将抛出i循环的最后一次迭代。
标签: c# arrays visual-studio exception