Упорядочить столбцы матрицы так, чтобы их последние элементы образовывали убывающую последовательность - C#
Формулировка задачи:
Ребят помогите! Задание такое:Дана матрица размера M х N. Упорядочить ее столбцы так, чтобы их последние элементы образовывали убывающую последовательность.
При таких данных:1,2,3,4,5,6,7,8,9 и матрицей размера [3][3] Код не работает, не могу понять почему
Console.Write("Введите число строк матрицы N=");
int N = int.Parse(Console.ReadLine());
Console.Write("Введите число столбцов матрицы M=");
int M = int.Parse(Console.ReadLine());
int[,] mass = new int[N, M];
for (int i = 0; i < N; i++)
for (int j = 0; j < M; j++)
{
Console.Write("Введите элемент массива [{0}] [{1}]:", i, j);
mass[i, j] = int.Parse(Console.ReadLine());
}
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
Console.Write("{0} ", mass[i, j]);
}
Console.WriteLine(" ");
}
int temp = 0;
for (int i = 0; i < N; i++)
{
if (mass[N-1, 0] < mass[i, 0])
{
temp = mass[N-1, 0];
mass[N-1, 0] = mass[i, 0];
mass[i, 0] = temp;
}
}
for (int j = 1; j < M; j++)
{
for (int i = 0; i < N-1; i++)
{
if (mass[N-1,j]<mass[i,j] && mass[N-1,j-1]> mass[i,j])
{
temp= mass[N-1,j];
mass[N-1,j] = mass[i,j];
mass[i,j] = temp;
}
}
}
Console.WriteLine("Результат:");
for (int i = 0; i < N; i++)
{
for (int j = 0; j < M; j++)
{
Console.Write("{0} ", mass[i, j]);
}
Console.WriteLine(" ");
}
bool flag = false;
for (int i = 0; i < N; i++)
{
if (flag == true) break;
for (int j = 1; j < M; j++)
{
if (mass[N - 1, j - 1] < mass[N - 1, j])
{
Console.WriteLine("Упорядочить не удалось!");
flag = true;
}
}
}
Console.ReadKey();Решение задачи: «Упорядочить столбцы матрицы так, чтобы их последние элементы образовывали убывающую последовательность»
textual
Листинг программы
int temp = 0;
for (int i = 0; i < M-1; i++)
{
for (int j = i; j < M; j++)
{
if (mass[N - 1, i] < mass[N - 1, j])
{
for (int k = 0; k < N; k++)
{
temp = mass[k, j];
mass[k, j] = mass[k, i];
mass[k, i] = temp;
}
}
}
}