Сдвиг столбцов матрицы влево - C#
Формулировка задачи:
В двумерном массиве произвести сдвиг элементов таким образом, что второй
столбец становится первым, третий столбец - вторым и т.д., а первый становится
последним.
Помогите пожалуйста с заданием.
Решение задачи: «Сдвиг столбцов матрицы влево»
textual
Листинг программы
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
int m = 4;
int n = 5;
int[,] arr = new int[m,n];
int[,] new_arr = new int[m, n];
MyLib.ArrRandom(arr); //заполняет 2x массив рандомом
MyLib.ArrPrint(arr); //печатает 2x массивы int
int L1=arr.GetUpperBound(0)+1;
int L2=arr.GetUpperBound(1)+1;
int jx;
for (int i = 0; i < L1; i++)
{
for (int j = 0; j < L2; j++)
{
jx = j;
if (j == L2-1)
{
jx = -1;
}
new_arr[i, j] = arr[i, jx + 1];
}
}
MyLib.ArrPrint(new_arr); //печатает 2x массивы int
Console.ReadLine();
}
}
class MyLib
{
public static void ArrRandom(int[,] arr, int r1 = 0, int r2 = 10) //заполняет 2x массив рандомом
{
int i, j;
int L1, L2;
L1 = arr.GetUpperBound(0) + 1;
L2 = arr.GetUpperBound(1) + 1;
Random random = new Random();
for (i = 0; i < L1; i++)
{
for (j = 0; j < L2; j++)
{
arr[i, j] = random.Next(r1, r2);
}
}
}
public static void ArrPrint(int[,] arr) //печатает 2x массивы int
{
int r1, r2;
int i, j;
r1 = arr.GetUpperBound(0) + 1;
r2 = arr.GetUpperBound(1) + 1;
for (i = 0; i < r1; i++)
{
for (j = 0; j < r2; j++)
{
Console.Write(arr[i, j] + " ");
}
Console.WriteLine("");
}
Console.WriteLine("");
}
}
}