В заданном двумерном массиве размером N×N поменять местами элементы - C#

Узнай цену своей работы

Формулировка задачи:

В заданном двумерном массиве размером N×N поменять местами элементы, расположенные в верхней и нижней частях массива, между главной и побочной диагоналями за исключением элементов, расположенных на этих диагоналях.
Console.WriteLine("Введите размерность: ");
            int N = Convert.ToInt32(Console.ReadLine());
           
            int[,] mass = new int[N, N];
            Random random = new Random();
 
            Console.WriteLine("Исходная мартица");
            Console.WriteLine();
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < N; j++)
                {
                    mass[i, j] = random.Next(0, 100);
                    Console.Write(mass[i, j] + "\t");
                }
                Console.WriteLine();
            }
 
            Console.WriteLine();
            Console.WriteLine();
 
            int[,] rez = new int[N, N];
 
            Console.WriteLine("Результирующая мартица");
            Console.WriteLine();
            for (int i = 0; i < N; i++)
            {
                for (int j = 0; j < N; j++)
                {
                    rez[i, j] = mass[N - j - 1 , N - i - 1];
                    Console.Write(rez[i, j] + "\t");
                }
                Console.WriteLine();
            }
 
            Console.ReadLine();
Можно таким кодом, не получается придумать алгоритм вот такого типа (rez[i, j] = mass[N - j - 1 , N - i - 1]; )
rez[i, j] = mass[N - j - 1 , N - i - 1] . Этот алгоритм позволяет поменять местами симметричные относительно побочной диагонали элементы местами
Мб поможет кто?

Решение задачи: «В заданном двумерном массиве размером N×N поменять местами элементы»

textual
Листинг программы
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Text;
using System.Drawing;
using System.Text.RegularExpressions;
 
namespace ConsoleApplication5
{
    class Program
    {
        static Random rnd = new Random();
        static void Main(string[] args)
        {
            int n = 5;
            int[,] array = new int[5, 5];
            Console.WriteLine("before:");
            for(int i = 0; i < array.GetLength(0); i++)
            {
                for(int j = 0; j < array.GetLength(1); j++)
                {
                    Console.Write((array[i,j] = rnd.Next(1,10)) + " ");
                }
                Console.WriteLine();
            }
            for(int i = 0; i < array.GetLength(0); i++)
            {
                for(int j = i+1; j < array.GetLength(1) - i - 1; j++)
                {
                    int tmp = array[i, j];
                    array[i, j] = array[array.GetLength(0) - i - 1, j];
                    array[array.GetLength(0) - i - 1, j] = tmp;
                }
            }
            Console.WriteLine("after:");
            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();
            }
            Console.ReadKey(true);
        }
    }
}

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


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

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

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