Я хочу знать, как умножать 2D-массивы (матрицы) и отображать их в виде матрицы.
Текущий выход
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();
}
}
}
result[a, b] = m1 *m2;
устанавливает каждый элементresult
на то, что вm1
раз больше, чем вm2
.m1
иm2
оба являются1
, потому что это самый последний элемент в обоих ваших массивах. Посмотрите на свой код в строке//m
, в этот момент в вашем коде вы выполнили два набора двойных цикловfor
до завершения, и последняя итерация первого набора назначена1
наm1
, а последняя итерация второго набора назначена1
доm2
, затем вы проходите и назначаете1*1
каждому элементуresult
. P.s. Пожалуйста, соблюдайте правильную орфографию и грамматику, когда задаете вопрос. - person Quantic   schedule 23.11.2016