using System;
public class Program {
public const int COLS1 = 3;
public const int COLS2 = 2;
public static void Main(string[] args)
{
int[][] matrix1 = new int[][] {
new int[] {4, 2, 4},
new int[] {8, 3, 1}
};
int[][] matrix2 = new int[][] {
new int[] {3, 5},
new int[] {2, 8},
new int[] {7, 9}
};
int[][] mul = new int[][] {
new int[] {0, 0},
new int[] {0, 0}
};
int rows1 = matrix1.Length;
int cols2 = matrix2[0].Length;
// mul[0][0] = m1[0][0] * m2[0][0] + m1[0][1] * m2[1][0] + m1[0][2] * m2[2][0]
for (int i = 0; i < rows1; i++) {
for (int j = 0; j < cols2; j++) {
for (int k = 0; k < COLS1; k++) {
mul[i][j] += matrix1[i][k] * matrix2[k][j];
Console.Write("mul[" + i);
Console.Write("][" + j);
Console.Write("] += m1[" + i);
Console.Write("][" + k);
Console.Write("] * m2[" + k);
Console.Write("][" + j + "]\n");
}
Console.Write("\n");
}
}
for (int i = 0; i < COLS2; i++) {
for (int j = 0; j < COLS2; j++) {
Console.Write(mul[i][j] + " ");
}
Console.Write("\n");
}
}
}
/*
run:
mul[0][0] += m1[0][0] * m2[0][0]
mul[0][0] += m1[0][1] * m2[1][0]
mul[0][0] += m1[0][2] * m2[2][0]
mul[0][1] += m1[0][0] * m2[0][1]
mul[0][1] += m1[0][1] * m2[1][1]
mul[0][1] += m1[0][2] * m2[2][1]
mul[1][0] += m1[1][0] * m2[0][0]
mul[1][0] += m1[1][1] * m2[1][0]
mul[1][0] += m1[1][2] * m2[2][0]
mul[1][1] += m1[1][0] * m2[0][1]
mul[1][1] += m1[1][1] * m2[1][1]
mul[1][1] += m1[1][2] * m2[2][1]
44 72
37 73
*/