Упорядочить столбцы матрицы по убыванию их минимальных элементов - C#

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

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

Помогите с написанием программы. (Упорядочить столбцы матрицы по убыванию их минимальных элементов)

Решение задачи: «Упорядочить столбцы матрицы по убыванию их минимальных элементов»

textual
Листинг программы
class Program
    {
        static Random rnd = new Random();
        static void Main(string[] args)
        { int n;//количесво строк
          int m;//количество столбцов
            do
            {
                Console.WriteLine("Введите количество строк");
                int.TryParse(Console.ReadLine(), out n);
                Console.WriteLine("Введите количество столбцов");
                int.TryParse(Console.ReadLine(), out m);
 
            } while (!(n > 0 && m > 0));//до тек пор пока пока размерность матрицы не будет больше 0
            int[,] ar = new int[n, m];//исходная матрица
            int[,] creatArry = new int[n, m];//в этом массиве будет сохранять новый порядок столбов  нужный по условию 
            CreateArray(ar);
            ShowArray(ar);
            ChangeArray(ar, creatArry);
            Console.WriteLine();
            ShowArray(creatArry);
            Console.ReadKey();
 
        }
        static void CreateArray(int [,] ar)
        {
            for (int i = 0; i < ar.GetLength(0); i++)//заполнение элементов матрицы случайными числами от (1,9)
            {
                for (int j = 0; j < ar.GetLength(1); j++)
                {
                    ar[i, j] = rnd.Next(1, 10);
                }
            }
        }
        static void ShowArray(int [,] ar)
        {
            for (int i = 0; i < ar.GetLength(0); i++)//заполнение элементов матрицы случайными числами от (1,9)
            {
                for (int j = 0; j < ar.GetLength(1); j++)
                {
                    Console.Write($"{ar[i, j]}  ");
                }
                Console.WriteLine();
            }
        }
        static void ChangeArray(int [,] ar ,int [,] creat)
        {
            int x = int.MaxValue;
            int m = 0;
            int findj = 0;//считает столбец с наименьшими элементами
            while(m<creat.GetLength(1))
            {
                for (int i = 0; i < ar.GetLength(0); i++)
                {
                    for (int j = 0; j < ar.GetLength(1); j++)
                    {
                        if (x >ar[i, j])
                        {
                            x = ar[i, j];
                            findj = j;
                        }
 
 
 
                    }
                }
                x = int.MaxValue;
                    for (int k = findj; k < findj + 1; k++)//сохраняем в начале столбец с наименьшим членов
                    {
                        for (int z = 0; z < creat.GetLength(0); z++)
                        {
                            creat[z, m] = ar[z, findj];
                            ar[z, findj] = int.MaxValue;//присваивание максимального значения элементу,чтобы при повторной итерации н было такого же столбцы
                        }
                    }
                   
                    m++;
                }
            
            }
 
        
 
    }

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


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

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

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