Переставить строки и столбцы так, чтобы все отрицательные элементы расположились на главной диагонали матрицы - 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());
                }
            }
        }
    }
}

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


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

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

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