Дана матрица размера mxn. Упорядочить ее столбцы - C#

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

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

Дана матрица размера mxn. Упорядочить ее столбцы так, чтобы их максимальные элементы образовывали возрастающую последовательность. Помогите пожалуйста решить эту задачу. Есть методы свапа столбца? Или как вообще решить данную задачу

Решение задачи: «Дана матрица размера mxn. Упорядочить ее столбцы»

textual
Листинг программы
using System;
namespace ConsoleApplication5
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите N");
            int n = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите M");
            int m = int.Parse(Console.ReadLine());
            int i, j;
            int[,] massiv = new int[n, m];
 
            for (i = 0; i < n; i++)                                // заполняем массив в ручную
            {
                for (j = 0; j < m; j++)
                {
                    Console.Write("Massiv[{0},{1}] ", i, j);
                    massiv[i, j] = int.Parse(Console.ReadLine());
                }
            }
            Console.WriteLine("Исходный массив");
            for (i = 0; i < n; i++)
            {
                for (j = 0; j < m; j++)
                {
                    Console.Write(" {0} ", massiv[i, j]);
                }
                Console.WriteLine();
            }
            int flag = 1;
            while (flag == 1)
            {
                flag = 0;
                for (i = 0; i < n-1; i++)
                {
                    int max = 0;
                    int max1 = 0;
                    for (j = 0; j < m; j++)
                    {
                        if (massiv[j, i] > max)
                        {
                            max = massiv[j, i];
                        }
                        if (massiv[j, i + 1] > max1)
                        {
                            max1 = massiv[j, i + 1];
                        }
                    }
                    if (max > max1)
                    {
                        for (j = 0; j < m; j++)
                        {
                            int tmp = massiv[j, i];
                            massiv[j, i] = massiv[j, i + 1];
                            massiv[j, i + 1] = tmp;
                        }
                        flag = 1;
                    }
                }
            }
            Console.WriteLine("Преобразованный массив");
            for (i = 0; i < n; i++)
            {
                for (j = 0; j < m; j++)
                {
                    Console.Write(" {0} ", massiv[i, j]);
                }
                Console.WriteLine();
            }
            Console.ReadKey();
        }
    }
}

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


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

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

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