Отобразить правую половину матрицы на левую зеркально симметрично относительно вертикальной оси - C# (182100)
Формулировка задачи:
Привет!
Уже долго вожусь с этой задачей, помогите пожалуйста!=) Понимаю, что такая задача уже есть на форуме, но она на С++, перевести не получилось=( Заполнить матрицу случайными числами. Отобразить правую половину матрицы на левую зеркально симметрично относительно вертикальной оси. Буду рад любой помощи=)Решение задачи: «Отобразить правую половину матрицы на левую зеркально симметрично относительно вертикальной оси»
textual
Листинг программы
using System; class Program { static void Main(string[] args) { var numbers = Console.ReadLine().Split(); int width = int.Parse(numbers[0]); int height = int.Parse(numbers[1]); var matrix = new int[width, height]; FillRandom(matrix); Print(matrix); Console.WriteLine(); MirrorTransform(matrix); Print(matrix); } static void FillRandom(int[,] matrix) { var random = new Random(); for (int x = 0; x < matrix.GetLength(0); ++x) for (int y = 0; y < matrix.GetLength(1); ++y) matrix[x, y] = random.Next(100); } static void MirrorTransform(int[,] matrix) { for (int x = 0; x < matrix.GetLength(0) / 2; ++x) for (int y = 0; y < matrix.GetLength(1); ++y) Swap(ref matrix[x, y], ref matrix[matrix.GetLength(0) - x - 1, y]); } private static void Swap(ref int x, ref int y) { int temp = x; x = y; y = temp; } static void Print(int[,] matrix) { for (int y = 0; y < matrix.GetLength(1); ++y) { for (int x = 0; x < matrix.GetLength(0); ++x) Console.Write("{0,4}", matrix[x, y]); Console.WriteLine(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д