我的目标是创建一个三元组for循环来乘以矩阵X矩阵,我得到了输入矩阵,我必须得到矩阵^2。
当我调试以下代码时,我得到了错误"IndexOutOfRangeException“-索引超出了数组的界限:
for (int i = 1; i < nodeList.Count+1; i++)
{
for (int j = 1; j < nodeList.Count+1; j++)
{
result[i, j] = "0";
for (int k = 1; k < nodeList.Count+1; i++)
{
if ((matrix[i, k] != null) && (matrix[k, j] != null))
{
n1 = Convert.ToInt32(matrix[i, k]);
n2 = Convert.ToInt32(matrix[k, j]);
n3 = Convert.ToInt32(result[i, j]);
total = n3 + n1 * n2;
_total = total.ToString();
result[i, j] = _total;
}
}
}
}其中变量是: 1. matrix是字符串类型,维数是(nodelist+1,nodelist+1) 2.result是与我要放置结果矩阵的矩阵的类型和维数相同的结果3. 3.nodelist是我在图中拥有的节点名称的数组4. n1、n2、n3是整数,我将矩阵的转换整数放入其中。5. 6._total是结果矩阵的乘法转换总整数的操作结果
所以我为每个数组和矩阵设置了正确的维数,但我总是得到相同的错误。我不明白为什么。能不能请别人帮我注意一下这个错误,因为我看不出来。
发布于 2012-06-08 01:49:13
在k循环中,您将递增i。
发布于 2012-06-08 01:49:06
对于(int k = 1;k< nodeList.Count+1;i++) <--您正在递增i,它应该递增k。
如下所示:
for (int k= 1;k< nodeList.Count+1;k++)
发布于 2012-06-08 01:48:02
在C#中,数组是从0开始的--第一个元素的位置是0,而不是1。
for (int i = 1; i < nodeList.Count+1; i++)..。应该是...
for (int i = 0; i < nodeList.Count; i++)对于k-loop,似乎还有一个复制-粘贴错误。
for (int k = 1; k < nodeList.Count+1; i++) // should be k++?https://stackoverflow.com/questions/10937052
复制相似问题