【发布时间】:2020-06-17 03:10:42
【问题描述】:
我想读取一个二维数组并将其作为矩阵写入控制台。我的代码如下所示
读取数组
int[][] arr = new int[3][];
for(int i=0;i<3;i++)
{
arr[i] = Array.ConvertAll(Console.ReadLine().Split(' '),aTemp => Convert.ToInt32(aTemp));
}
将数组作为矩阵写入控制台
for(int i=0;i<arr.GetLength(0);i++)
{
for(int j=0;j<arr.GetLength(1);j++)
{
Console.WriteLine("\t" + arr[i][j]);
}
}
但是,当我在控制台中输入输入并尝试运行时,我在此处得到一个 Index out of bound 异常
arr.GetLength(1);
然后我尝试用行和列都像这样初始化列 “int[][] arr = 新的 int[3][3];”。
那时另一个错误来了说
排名说明符无效:预期为 ',' 或 ']'
然后我尝试如下初始化数组
"int[,] arr = new int[3,3];"
这次无效的排名说明符错误消失了,但错误出现在读取数组元素的行中,
这个错误可能是由于没有使用arr[i][j] 并读取每个元素。
我只想知道我的初始代码中的错误是什么,我没有得到 GetLength(1) 的值。
以及int[,] arr = new int[3,3];和int[][]arr = new int[3][3];有什么区别
还有没有优化的方法来读取像语句这样的二维数组,而不是使用 2 个 for 循环。
我希望问题很清楚。如果有人帮助我解决这个问题,那就太好了。提前致谢!!!
【问题讨论】:
-
是整数数组还是实数数组?
-
你知道之前数组的行数吗?
标签: c# arrays matrix optimization multidimensional-array