我试图创建一段代码,最后会显示出来
1 1 1 1 1
2 2 2 2 2
3 3 3 3 3
4 4 4 4 4
5 5 5 5 5
但我所写的内容却显示了
1 1 1 1 1
2 0 0 0 0
3 0 0 0 0
4 0 0 0 0
5 0 0 0 0
这是我编写的代码
int col, lig, test;
col = 0;
test = 0;
for (lig = mat.GetLowerBound(0); lig <= mat.GetUpperBound(0); lig++)
{
mat[lig, col] = 1 + test++;
}
for (col = mat.GetLowerBound(0) + 1; col <= mat.GetUpperBound(0); col++)
{
mat[0, col] = mat[0, col] + 1;
}
我已尝试过多项内容,但其中没有一项是有效的,我可以修改哪些内容以便提供我想要获得的结果?
答案 0 :(得分:1)
您的代码存在一些问题:
0
中检查第二个循环(对于col
)的数组范围,但在数组的第1维中使用col
:您应该使用{ {1}}和GetLowerBound(1)
代替。这不是问题,因为你有一个方阵,但你应该知道。GetUpperBound(1)
,但mat[lig, col]
为零,因此您只需在第一列中设置值。通过在循环中声明col
和lig
(请参阅下面的代码),您可以避免此错误。col
只会更改第一行中的值。mat[0, col]
开始第二个循环,它将错过第一个元素。大概你是故意这样做的,因为它将元素设置为(0,0)到2。您需要的代码是:
mat.GetLowerBound(0) + 1
您可以通过注意int test = 0;
for ( int lig = mat.GetLowerBound(0); lig <= mat.GetUpperBound(0); lig++ )
{
test++;
for ( int col = mat.GetLowerBound(1); col <= mat.GetUpperBound(1); col++ )
mat[lig, col] = test;
}
始终为test
并完全消除lig + 1
来进一步简化此操作:
test