Упорядочить столбцы матрицы по убыванию их минимальных элементов - 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++;
}
}
}