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