Поменять местами две средних строки, если количество строк чётное, и первую со средней строкой, если нечётное - 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 - строка ниже середины