Вывести матрицу в консоль, отсортировать по возрастанию побочную диагональ. - 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();
}
}