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

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


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

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

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