Многомерный массив в обратном порядке - C#
Формулировка задачи:
var b = new[,]
{
{5, 10, 8, -4, 62},
{20, 2, 9, 9, -1},
{5, 10, 1, 8, 1},
{6, 1, 2, 6, -5},
{95, 5, 1, 3, 2}
};
for (int row = 0; row < 5; row++)
{
for (int col = 0; col < 5; col++)
{
Console.Write("|" + a[row, col] * b[row, col]);
}
Console.WriteLine("|");
}
Как собственно говоря это сделать. Array.Reverse только с одномерным работает.
Решение задачи: «Многомерный массив в обратном порядке»
textual
Листинг программы
var n = 5;
var m = 5;
// создание массива
var rnd = new Random();
var sourceArray = Enumerable.Range(0, n).Select(v => Enumerable.Range(0, m).Select(c => rnd.Next(1, 39)).ToArray()).ToArray();
Console.WriteLine("Исходный массив:\n" + String.Join("\n", sourceArray.Select(v => String.Join(" | ", v))));
// вьіполнение самих перестановок
var halfN = sourceArray.Length / 2 + (sourceArray.Length % 2);
for (var i = 0; i < halfN; i++)
{
var end_i = sourceArray.Length - 1 - i;
for (var j = 0; j < sourceArray[i].Length; j++)
{
var end_j = sourceArray[i].Length - 1 - j;
var current = sourceArray[i][j];
sourceArray[i][j] = sourceArray[end_i][end_j];
sourceArray[end_i][end_j] = current;
}
}
// вьівод на єкран
Console.WriteLine("Новый массив:\n" + String.Join("\n", sourceArray.Select(v => String.Join(" | ", v))));
Console.ReadKey();