Сдвиг столбцов матрицы влево - 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(""); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д