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

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


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

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

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