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