Cдвиг вправо или влево на n элементов в матрице - C#
Формулировка задачи:
Вот начало моего кода, помогите, пожалуйста
Листинг программы
- using System;
- using System.Collections.Generic;
- using System.Text;
- namespace LabRab5
- {
- class Program
- {
- static void Main(string[] args)
- {
- //Массив элементов
- Console.WriteLine("Введите кол-во строк:");
- int n = Convert.ToInt32(Console.ReadLine());
- Console.WriteLine("Введите кол-во столбцов:");
- int k = Convert.ToInt32(Console.ReadLine());
- int[,] a = new int[n, k];
- Random random = new Random();
- for (int i = 0; i < n; i++)
- {
- for (int j = 0; j < k; j++)
- {
- a[i, j] = random.Next(50);
- Console.Write("{0,4}", a[i, j]);
- }
- Console.WriteLine();
- }
- //Вводим количество элементов для сдвига
- Console.Write("Введите количество элементов для сдвига: ");
- string buf1 = Console.ReadLine();
- //Ввдим режим сдвига
- Console.Write("Выберите режим сдвига( 1 - вправо, 2 - вниз ): ");
- string buf2 = Console.ReadLine();
- int sd = int.Parse(buf2);
- //Осуществляем сдвиги
Решение задачи: «Cдвиг вправо или влево на n элементов в матрице»
textual
Листинг программы
- static void Main(string[] args)
- {
- int[,] array =
- {
- {1,2,3 },
- {4,5,6 },
- {7,8,9 }
- };
- PrintArray(array);
- PrintArray(MoveRight(array, 1));
- PrintArray(MoveRight(array, -1));
- Console.ReadKey();
- }
- static T[,] MoveRight<T>(T[,] array, int positions)
- {
- int l1 = array.GetLength(0), l2 = array.GetLength(1);
- T[,] result = array.Clone() as T[,];
- for (int i = 0; i < l1; i++)
- {
- for (int j = 0; j < l2; j++)
- {
- int jj = (j - positions) % l2;
- jj = jj < 0 ? jj + l2 : jj;
- result[i, j] = array[i, jj];
- }
- }
- return result;
- }
- static void PrintArray<T>(T[,] array)
- {
- for (int i = 0; i < array.GetLength(0); i++)
- {
- for (int j = 0; j < array.GetLength(1); j++)
- {
- Console.Write(array[i, j].ToString() + " ");
- }
- Console.WriteLine();
- }
- Console.WriteLine();
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д