Дан двумерный массив, создать другой массив, строками которого будут диагонали первого массива - C#
Формулировка задачи:
Дан двумерный массив, создать другой массив, строками которого будут диагонали первого массива. Задачу решить с помощью классов. Класс будет содержать два метода: один заполнит массив значениями, второй произведет замену значений строк на значения диагоналей.
Решение задачи: «Дан двумерный массив, создать другой массив, строками которого будут диагонали первого массива»
textual
Листинг программы
- using System;
- static class IntMatrixOps
- {
- public static int[,] SwapLineByDiag(this int[,] matr)
- {
- if (matr.GetLength(0) != matr.GetLength(1)) throw new Exception
- ("все плохо(метод работает только с квадратными матрицами)");
- int[,] m2 = new int[matr.GetLength(0), matr.GetLength(1)];
- for (int i = 0; i < matr.GetLength(1); i++)
- for (int j = 0; j < matr.GetLength(0); j++)
- m2[j, i] = matr[i, i];
- return m2;
- }
- public static void FillWithRandoms(this int[,] matr,Random r = null)
- {
- r = r ?? new Random();
- for (int i = 0; i < matr.GetLength(0); i++)
- for (int j = 0; j < matr.GetLength(1); j++) matr[i, j] = r.Next(0,100);
- }
- public static void Show(this int[,] matr)
- {
- for (int i = 0; i < matr.GetLength(0); i++)
- {
- for (int j = 0; j < matr.GetLength(1); j++) Console.Write("{0,3}", matr[i, j]);
- Console.WriteLine();
- }
- }
- }
- class test
- {
- static void Main()
- {
- Random r = new Random();
- Console.Write("введите сторону матрицы : ");
- int b = int.Parse(Console.ReadLine());
- int[,] matrix = new int[b,b];
- matrix.FillWithRandoms(r);
- Console.WriteLine();
- matrix.Show();
- Console.WriteLine("\nновая матрица : ");
- int[,] matr2 = matrix.SwapLineByDiag();
- matr2.Show();
- Console.ReadKey(true);
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д