• Предмет: Информатика
  • Автор: LapLas44
  • Вопрос задан 4 месяца назад

Дана квадратная матрица. Переставить ее строки так, чтобы элементы на главной диагонали были расположены по возрастанию значений от первой строки к послденей
Нужен код на c# помогите пожалуйста!!!

Ответы

Ответ дал: XeonFox
0

Ответ:

using System;

class Program

{

   static void Main()

   {

       int n = 5; // Размерность матрицы (задайте нужное значение)

       int[,] matrix = new int[n, n]; // Создаем квадратную матрицу

       // Заполним матрицу значениями (можете изменить на свои)

       for (int i = 0; i < n; i++)

       {

           for (int j = 0; j < n; j++)

           {

               matrix[i, j] = (i * n) + j + 1; // Просто заполняем матрицу числами от 1 до n^2

           }

       }

       Console.WriteLine("Исходная матрица:");

       PrintMatrix(matrix);

       // Переставляем строки

       for (int i = 0; i < n; i++)

       {

           // Находим индекс строки с минимальным элементом на главной диагонали

           int minRowIndex = i;

           int minValue = matrix[i, i];

           for (int k = i + 1; k < n; k++)

           {

               if (matrix[k, k] < minValue)

               {

                   minRowIndex = k;

                   minValue = matrix[k, k];

               }

           }

           // Меняем местами текущую строку и строку с минимальным элементом

           if (minRowIndex != i)

           {

               for (int j = 0; j < n; j++)

               {

                   int temp = matrix[i, j];

                   matrix[i, j] = matrix[minRowIndex, j];

                   matrix[minRowIndex, j] = temp;

               }

           }

       }

       Console.WriteLine("\nМатрица с переставленными строками:");

       PrintMatrix(matrix);

   }

   static void PrintMatrix(int[,] matrix)

   {

       int n = matrix.GetLength(0);

       for (int i = 0; i < n; i++)

       {

           for (int j = 0; j < n; j++)

           {

               Console.Write($"{matrix[i, j]} \t");

           }

           Console.WriteLine();

       }

   }

}

Объяснение:

Вас заинтересует