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

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


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

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

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