【发布时间】:2016-11-23 19:56:41
【问题描述】:
我想知道如何将二维数组(矩阵)相乘并将它们显示为矩阵。
当前输出为
1 1 1
1 1 1
1 1 1
这不是正确的结果。
代码如下:
static void Main(string[] args)
{
int[,] metrix1 = new int[3, 3] { { 2, 0, 2 }, { 0, 1, 2 }, { 1, 2, 1 } };
int[,] metrix2 = new int[3, 3] { { 1, 1, 1 }, { 0, 1, 0 }, { 0, 0, 1 } };
int[,] result = new int[3, 3];
int m1 =0;
int m2 =0;
for (int i = 0; i < 3; i++)
{
for (int j = 0; j < 3; j++)
{
m1 = metrix1[i, j];
}
}
// metrix 2
for (int y = 0; y < 3; y++)
{
for (int z = 0; z < 3; z++)
{
m2 = metrix2[y, z];
}
}
//m
for (int a = 0; a < 3; a++)
{
for (int b = 0; b < 3; b++)
{
result[a, b] = m1 *m2;
Console.Write(result[a, b] );
}Console.WriteLine();
}Console.ReadLine();
}
}
}
【问题讨论】:
-
只使用两个 for 循环
-
result[a, b] = m1 *m2;将每个result元素设置为m1中的任何值乘以m2中的任何值。m1和m2都是1,因为这是两个数组中的最后一个元素。在//m行查看您的代码,此时在您的代码中,您已经运行了两组双for循环以完成,第一组的最后一次迭代将1分配给m1,并且第二组的最后一次迭代将1分配给m2,然后您将1*1分配给result的每个元素。 P.s.,提问时请使用正确的拼写和语法。
标签: c# arrays dimensional