В квадратной матрице симметрично отразить элементы относительно диагонали (по выбору пользователя) - C#

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

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

Написать программу, которая в квадратной матрице симметрично отражает элементы либо относительно главной, либо относительно вспомогательной диагонали(задается пользователем). Задание размера и резервирование матрицы производится динамически. После резервирования матрица заполняется случайными числами. Написать на Шарпе. Можно пожалуйста полный код программы. СПАСИБО БОЛЬШОЕ ЛЮДИ!

Решение задачи: «В квадратной матрице симметрично отразить элементы относительно диагонали (по выбору пользователя)»

textual
Листинг программы
using System;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите размер:");
            int size = int.Parse(Console.ReadLine());
 
            var rnd = new Random();
            var matrix = new int[size, size];
 
            Console.WriteLine("Исходная матрица:");
            for (int i = 0; i < matrix.GetLength(0); i++)
            {
                for (int j = 0; j < matrix.GetLength(0); j++)
                {
                    var q = rnd.Next(1, 10);
                    matrix[i, j] = q;
                    Console.Write("{0,3}",q);
                }
                Console.WriteLine();
            }
            Console.WriteLine("1.Главная 2.Побочная");
            int res = int.Parse(Console.ReadLine());
            if (res == 1)
            {
                Console.WriteLine("Относительно главной:");
                Gl(matrix);
            }
            else
            {
                Console.WriteLine("Относительно побочной:");
                Pob(matrix);
            }
          
            Print(matrix);
 
            Console.ReadKey();
 
        }
 
        static void Print(int[,] matrix)
        {
            for (int i = 0; i < matrix.GetLength(0); i++)
            {
                for (int j = 0; j < matrix.GetLength(1); j++)
                {
                    Console.Write("{0,3}", matrix[i, j]);
                }
                Console.WriteLine();
            }
        }
 
        static void Gl(int[,] matrix)
        {
            for (int i = 1; i < matrix.GetLength(0); ++i)
                for (int j = 0; j < i; ++j)
                {
                    int temp = matrix[j, i];
                    matrix[j, i] = matrix[i, j];
                    matrix[i, j] = temp;
                }
        }
 
        static void Pob(int[,] matrix)
        {
            for (int i = 0; i < matrix.GetLength(0) - 1; i++)
            {
                for (int j = 0; j < matrix.GetLength(0) - i; j++)
                {
                   int  tmp = matrix[i,j];
                    matrix[i,j] = matrix[matrix.GetLength(0) - 1 - j,matrix.GetLength(0) - 1 - i];
                    matrix[matrix.GetLength(0) - 1 - j,matrix.GetLength(0) - 1 - i] = tmp;
                }
            }
        }
    }
 
}

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


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

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

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