Поменять местами две средних строки, если количество строк чётное, и первую со средней строкой, если нечётное - C#

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

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

Помогите пожалуйста Использовать двумерный массив. Дан массив размером nxn, элементы которого целые числа.Поменять местами две средних строки, если количество строк чётное, и первую со средней строкой, если количество строк нечётное. Я что-то запутался с кодом
namespace _1
{
    class Program
    {
        static int[,] Input(out int n)
        {
            Console.WriteLine("введите размерность массива");
            Console.Write("n = ");
            n = int.Parse(Console.ReadLine());
            int[,] a = new int[n, n];
            for (int i = 0; i < n; ++i)
                for (int j = 0; j < n; ++j)
                {
                    Console.Write("a[{0},{1}]= ", i, j);
                    a[i, j] = int.Parse(Console.ReadLine());
                }
            return a;
        }
 
        static void Print(int[,] a)
        {
            for (int i = 0; i < a.GetLength(0); ++i, Console.WriteLine())
                for (int j = 0; j < a.GetLength(1); ++j)
                    Console.Write("{0,5} ", a[i, j]);
        }
 
        static int[,] Rezalt(int[,] a)
        {
 
            if (a.GetLength(0) % 2 == 0)
            {
                for (int i = 0; i < a.GetLength(0) - 1; i++)
                {
                    for (int j = 0; j < a.GetLength(1); j++)
                    {
                        int temp = a[i, a.GetLength(1)];
                        a[i, a.GetLength(1)] = a[i, j];
                        a[i, j] = temp;
                    }
                    i++;
                }
               
            }
            else
            {
                
                    for (int i = 0; i < a.GetLength(0) - 1; i++)
                    {
                        for (int j = 0; j < a.GetLength(1); j++)
                        {
                            int temp = a[i + a.GetLength(0), j];
                            a[i + a.GetLength(0), j] = a[i, j];
                            a[i, j] = temp;
                        }
                        i++;
                    }

            }
            return a;
        }

        static void Main(string[] args)
        {
            int n;
            int[,] myArray = Input(out n);
            Console.WriteLine("Исходный массив:");
            Print(myArray);
            int[,] res = new int[n, n];
            Console.WriteLine("Полученный массив:");
            res = Rezalt(myArray);
            Print(res);
            Console.ReadKey();
            
        }
    }
}

Решение задачи: «Поменять местами две средних строки, если количество строк чётное, и первую со средней строкой, если нечётное»

textual
Листинг программы
 n = (a.GetLength(0) / 2) - 1;// n - строка выше середины
 m = (a.GetLength(0) / 2);// m - строка ниже середины

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


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

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

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