Отсортировать побочную диагональ матрицы по убыванию - C#
Формулировка задачи:
Здравствуйте.
Необходимо написать программу для сортировки массива 4х4 побочная диагональ по возрастанию на языке C шарп.
Ошибка, не по возрастанию, а по убыванию))
Решение задачи: «Отсортировать побочную диагональ матрицы по убыванию»
textual
Листинг программы
using System; class Program { static void Main(string[] args) { Array array = new Array(); Console.WriteLine("Введите желаемый размер матрици NxN:"); int N = int.Parse(Console.ReadLine()); Console.WriteLine("Введите диапазон значений матрици:"); Console.Write("min ="); int min = int.Parse(Console.ReadLine()); Console.Write("max ="); int max = int.Parse(Console.ReadLine()); var arr = array.Arr(N, max, min); Console.WriteLine(string.Format("Исходная матрица {0}x{0}", N)); array.ArrPrint(arr); arr = array.ArrSort(arr); Console.WriteLine(); Console.WriteLine("После сортировки:"); array.ArrPrint(arr); Console.ReadKey(); } } public class Array { public int[,] Arr(int N, int max, int min) { int[,] arr = new int[N, N]; Random rnd = new Random(); for (int i = 0; i < arr.GetLength(1); i++) for (int j = 0; j < arr.GetLength(0); j++) arr[i, j] = rnd.Next(min, max + 1); return arr; } public int[,] ArrSort(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; } } return arr; } public void ArrPrint(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(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д