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