public static void Main()
int[,] a = new int[,] {{1, 2, 3}, {4, 5, 6} , {7, 8, 9}};
int[,] b = new int[,] {{1, 4, 7}, {2, 5, 8}, {3, 6, 9}};
public static void print(int[,] a)
for (int i = 0; i < a.GetLength(0); i++)
for (int k = 0; k < a.GetLength(1); k++)
Console.Write("{0} ", a[i, k]);
public static void elems(int[,] a)
int[] min = new int[] {0, 0};
int[] max = new int[] {0, 0};
for (int i = 0; i < a.GetLength(0); i++)
for (int k = 0; k < a.GetLength(1); k++)
if (a[i, k] < a[min[0], min[1] ])
if (a[i, k] > a[max[0], max[1] ])
Console.WriteLine("Позиция минимального элемента:{0}:{1}, значение: {2}", min[0], min[1], a[min[0], min[1]]);
Console.WriteLine("Позиция максимального элемента:{0}:{1}, значение: {2}:", max[0], max[1], a[max[0], max[1]]);
public static int[,] sum(int[,] a, int[,] b)
if ((a.GetLength(0) != b.GetLength(0)) || (a.GetLength(0) != b.GetLength(0)))
Console.WriteLine("Размерности матриц должны совпадать");
int[,] c = new int[a.GetLength(0), a.GetLength(1)];
for (int i = 0; i < a.GetLength(0); i++)
for (int k = 0; k < a.GetLength(1); k++)
c[i, k] = a[i, k] + b[i, k];
public static int[,] difference(int[,] a, int[,] b)
if ((a.GetLength(0) != b.GetLength(0)) || (a.GetLength(0) != b.GetLength(0)))
Console.WriteLine("Размерности матриц должны совпадать");
int[,] c = new int[a.GetLength(0), a.GetLength(1)];
for (int i = 0; i < a.GetLength(0); i++)
for (int k = 0; k < a.GetLength(1); k++)
c[i, k] = a[i, k] - b[i, k];
public static int[,] product(int[,] a, int[,] b)
if (a.GetLength(1) != b.GetLength(0))
Console.WriteLine("Число столбцов первой матрицы должно быть равно числу строк второй");
int[,] c = new int[a.GetLength(0), b.GetLength(1)];
for (int l = 0; l < a.GetLength(0); l++)
for (int j = 0; j < b.GetLength(1); j++)
for (int i = 0; i < a.GetLength(1); i++)
c[l, j] += a[l, i] * b[i, j];