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