Получить новую матрицу, переставляя ее блоки - C#
Формулировка задачи:
Дана действительная квадратная матрица порядка 2n. Получить новую матрицу,
переставляя ее блоки размером n x n: а) крест-накрест; б) по часовой стрелке (левый
верхний блок становится правым верхним, правый верхний – правым нижним и т.д.). Вижуал студио 2012 надо пж!
Решение задачи: «Получить новую матрицу, переставляя ее блоки»
textual
Листинг программы
- using System;
- namespace ConsoleApplication5
- {
- class Program
- {
- static void Main(string[] args)
- {
- int[,] array = new int[4, 4] { { 1, 1, 2, 2 },{ 1,1,2,2},{ 3,3,4,4},{ 3,3,4,4} };
- Print(array);
- Console.WriteLine();
- Rotate(array);
- Print(array);
- Console.WriteLine();
- CrissCross(array);
- Print(array);
- Console.ReadKey(true);
- }
- public static void Rotate(int[,] array)
- {
- int tmp, n = array.GetLength(0) / 2;
- for(int i = 0; i < n; i++)
- {
- for(int j = 0; j < n; j++)
- {
- tmp = array[i + n, j];
- array[i + n, j] = array[i + n, j + n];
- array[i + n, j + n] = array[i, j + n];
- array[i, j + n] = array[i, j];
- array[i, j] = tmp;
- }
- }
- }
- public static void CrissCross(int[,] array)
- {
- int tmp, n = array.GetLength(0) / 2;
- for(int i = 0; i < n; i++)
- {
- for(int j = 0; j < n; j++)
- {
- tmp = array[i, j];
- array[i, j] = array[i + n, j + n];
- array[i + n, j + n] = tmp;
- tmp = array[i + n, j];
- array[i + n, j] = array[i, j + n];
- array[i, j + n] = tmp;
- }
- }
- }
- public static void Print(int[,] array)
- {
- for(int i = 0; i < array.GetLength(0); i++)
- {
- for(int j = 0; j < array.GetLength(1); j++)
- {
- Console.Write(array[i, j] + " ");
- }
- Console.WriteLine();
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д