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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

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

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