Переставить строки и столбцы так, чтобы все отрицательные элементы расположились на главной диагонали матрицы - C#
Формулировка задачи:
Помогите пожалуйста:
Задана вещественная матрица размером n*m. Считая, что в каждой строке и каждом столбце исходной матрицы содержится ровно по одному отрицательному элементу переставить строки и столбцы так, чтобы все отрицательные элементы расположились на главной диагонали.
Решение задачи: «Переставить строки и столбцы так, чтобы все отрицательные элементы расположились на главной диагонали матрицы»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ciber { class Program { static void Main() { Console.Write("Введите число строк матрицы: "); int n = int.Parse(Console.ReadLine()); int[,] matrix = new int[n, n]; Fill(matrix, n, n); Console.WriteLine("Матрица: "); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { Console.Write("{0}", matrix[i, j]); } Console.Write("\n"); } for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { if (matrix[i, j] < 0) { for (int k = 0; k < n; k++) { int s = matrix[j, k]; matrix[j, k] = matrix[i, k]; matrix[i, k] = s; } } } } Console.WriteLine("Матрица: "); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { Console.Write("{0}", matrix[i, j]); } Console.Write("\n"); } Console.ReadLine(); } static void Fill(int[,] array, int l, int k) { Console.WriteLine("Введите элементы матрицы:"); for (int i = 0; i < l; i++) { for (int j = 0; j < l; j++) { array[i, j] = int.Parse(Console.ReadLine()); } } } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д