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