Зеркально отразить элементы матрицы относительно горизонтальной оси симметрии - C#
Формулировка задачи:
Дана матрица размера M × N. Зеркально отразить ее элементы относительно горизонтальной оси симметрии матрицы (при этом поменяются местами строки с номерами 1 и M, 2 и M – 1 и т. д.).
Решение задачи: «Зеркально отразить элементы матрицы относительно горизонтальной оси симметрии»
textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int[,] a;
int m = 0, n = 0,tmp = 0;
Random r = new Random();
while(n <= 0)
{
Console.Write("N = ");
n = Convert.ToInt32(Console.ReadLine());
}
while (m <= 0)
{
Console.Write("M = ");
m = Convert.ToInt32(Console.ReadLine());
}
a = new int[n, m];
Console.WriteLine("Исходная матрица");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
a[i, j] = r.Next(10);
Console.Write("{0} ",a[i,j]);
}
Console.WriteLine();
}
for (int i = 0; i < (n/2) ;i++ )
{
for (int j = 0; j < m; j++)
{
tmp = a[i, j];
a[i, j] = a[(n - i - 1), j];
a[(n - i - 1), j] = tmp;
}
}
Console.WriteLine("Зеркальная матрица");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
Console.Write("{0} ", a[i, j]);
}
Console.WriteLine();
}
Console.ReadKey();
}
}
}