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