Дана квадратная матрица. Переставить ее строки так, чтобы элементы на главной диагонали были расположены по возрастанию значений от первой строки к послденей
Нужен код на c# помогите пожалуйста!!!
Ответы
Ответ:
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();
}
}
}
Объяснение: