В матрице поменять местами столбец с номером N с тем, который содержит только отрицательные элементы - C#

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

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

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

Решение задачи: «В матрице поменять местами столбец с номером N с тем, который содержит только отрицательные элементы»

textual
Листинг программы
class Program
    {
        static void Show(int[,] mas)
        {
            for (int i = 0; i < mas.GetLength(0); i++)
            {
                for (int j = 0; j < mas.GetLength(1); j++)
                {
                    Console.Write(" " + mas[i, j] + " ");
                }
                Console.WriteLine();
            }
        }
 
        static void Main()
        {
            Console.Write("Введите M: ");
            int M = int.Parse(Console.ReadLine());
            Console.Write("Введите N: ");
            int N = int.Parse(Console.ReadLine());
 
            int[,] array = new int[M, N];
            Random random = new Random();
 
            for (int i = 0; i < M; i++)
            {
                for (int j = 0; j < N; j++)
                {
                    array[i, j] = random.Next(-9, 10);
                }
            }
            Show(array);
 
            int buf = -1;
            
            for (int i = 0; i < N; i++)
            {
                int count = 0;
                for (int j = 0; j < M; j++)
                {
                    if (array[j, i] > 0)
                    {
                        break;
                    }
                    count++;
                }
                if (count == M)
                {
                    buf = i;
                    break;
                }
                count = 0;
            }
 
            if (buf >= 0)
            {
                Console.Write("Введите столбец, который нужно поменять: ");
                int K = int.Parse(Console.ReadLine());
                if (K > N) throw new IndexOutOfRangeException();
 
 
                int buf1 = 0;
                for (int i = 0; i < M; i++)
                {
                    buf1 = array[i, buf];
                    array[i, buf] = array[i, K];
                    array[i, K] = buf1;
                }
 
                Show(array);
            }
            Console.ReadLine();
        }

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


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

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

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