我正在尝试编写一个黄金探矿计划,该计划采用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] = "*";
}
}
}
答案 0 :(得分:2)
你走出二维阵列的边界。因此,请更改代码的这一部分:
List<PhoneClient> clients = new List<PhoneClient>();
clients = load(); //returns active Clients
lv_clients.ItemsSource = clients;
到
for (int i = 1; i < nRows; i++)
{
for (int j = 1; j < nCols - 1; j++)
所以你省略了边框。