Вывести матрицу в консоль, отсортировать по возрастанию побочную диагональ. - C#

Узнай цену своей работы

Формулировка задачи:

Дано матрицу размера M×M, которая заполнена целыми числами в промежутке (-10, 10). необходимо: Вывести матрицу в консоль, отсортировать по возрастанию побочную диагональ матрицы и так же вывести её в консоль. C#

Решение задачи: «Вывести матрицу в консоль, отсортировать по возрастанию побочную диагональ.»

textual
Листинг программы
    static void Main(string[] args)
    {
        int m = 5;
        int[,] matr = new int[m, m];
        Init( matr);
        Print(matr);
        Sort(matr);
        Console.WriteLine();
        Print(matr);
        Console.ReadKey();
    }
         
    static public void Init(int[,] matr)
    {
         Random rnd = new Random();
 
        for (int i = 0; i < matr.GetLength(1); i++)
            for (int j = 0; j < matr.GetLength(0); j++)
                matr[i, j] = rnd.Next(-10,10);
    }
 
    static public void Sort(int[,] arr)
    {
        int value;
        int w = arr.GetLength(0);
 
 
        for (int j = 0; j < arr.GetLength(1) && j < w; j++)
        {
            //int h = arr.GetLength(1) - j;
            value = arr[j, w - 1 - j];
 
            for (int i = j; i < w; i++)
                if (arr[j, w - 1 - j] > arr[i, w - i - 1])
                {
                    int val = arr[j, w - 1 - j];
                    arr[j, w - 1 - j] = arr[i, w - i - 1];
                    arr[i, w - i - 1] = val;
                }
        }
   }
 
    static public void  Print(int[,] arr)
    {
        for (int i = 0; i < arr.GetLength(1); i++)
        {
            for (int j = 0; j < arr.GetLength(0); j++)
                Console.Write(string.Format("{0,3} ", arr[i, j]));
            Console.WriteLine();
        }
    }

Оцени полезность:

8   голосов , оценка 4 из 5
Похожие ответы