【发布时间】:2011-02-15 22:29:54
【问题描述】:
我有一个矩阵。我需要从我的矩阵中获取一维数组。例如,我有以下矩阵:
123
456
789
所以它看起来像 3 个数组:147、258、369。
但我在这段代码中得到“索引超出范围异常”:
int[] b = new int[n];
for (i = 0; i < n; i++)
{
b[i] = a[i, n];
Console.Write(b[i] + " ");
}
Console.WriteLine();
感谢任何帮助。
这里是已经可以使用的完整代码:
static void Main(string[] args)
{
int n = 0, m = 0, i = 0, j = 0;
Random r = new Random();
Console.WriteLine("Please, input matrix size:");
Console.Write("\tn = ");
n = Convert.ToInt32(Console.ReadLine());
Console.Write("\tm = ");
m = Convert.ToInt32(Console.ReadLine());
Console.WriteLine();
int[,] a = new int[n, m];
for (i = 0; i < n; i++)
{
for (j = 0; j < m; j++)
{
a[i, j] = r.Next(0, 2);
}
}
showMe(a, n, m);
Console.WriteLine();
run(a, n, m);
Console.ReadKey();
int[][] b = new int[m][];
for (i = 0; i < m; i++)
{
b[i] = new int[n];
for (j = 0; j < n; j++)
{
b[i][j] = a[j, i];
Console.Write(b[i][j] + " ");
}
Console.WriteLine();
}
Console.WriteLine();
Console.ReadKey();
}
【问题讨论】:
-
你能确认
a的第一个维度的大小是n吗?在此示例中查看a和n的定义会很有帮助。 -
你是指147、258和369吗?
-
哦,真的……谢谢。我会改正的。