Cдвиг вправо или влево на n элементов в матрице - C#

Узнай цену своей работы

Формулировка задачи:

Вот начало моего кода, помогите, пожалуйста
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. namespace LabRab5
  5. {
  6. class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. //Массив элементов
  11. Console.WriteLine("Введите кол-во строк:");
  12. int n = Convert.ToInt32(Console.ReadLine());
  13. Console.WriteLine("Введите кол-во столбцов:");
  14. int k = Convert.ToInt32(Console.ReadLine());
  15. int[,] a = new int[n, k];
  16. Random random = new Random();
  17. for (int i = 0; i < n; i++)
  18. {
  19. for (int j = 0; j < k; j++)
  20. {
  21. a[i, j] = random.Next(50);
  22. Console.Write("{0,4}", a[i, j]);
  23. }
  24. Console.WriteLine();
  25. }
  26. //Вводим количество элементов для сдвига
  27. Console.Write("Введите количество элементов для сдвига: ");
  28. string buf1 = Console.ReadLine();
  29. //Ввдим режим сдвига
  30. Console.Write("Выберите режим сдвига( 1 - вправо, 2 - вниз ): ");
  31. string buf2 = Console.ReadLine();
  32. int sd = int.Parse(buf2);
  33. //Осуществляем сдвиги

Решение задачи: «Cдвиг вправо или влево на n элементов в матрице»

textual
Листинг программы
  1.         static void Main(string[] args)
  2.         {
  3.             int[,] array =
  4.                {
  5.                 {1,2,3 },
  6.                 {4,5,6 },
  7.                 {7,8,9 }
  8.             };
  9.             PrintArray(array);
  10.             PrintArray(MoveRight(array, 1));
  11.             PrintArray(MoveRight(array, -1));
  12.             Console.ReadKey();
  13.  
  14.         }
  15.  
  16.         static T[,] MoveRight<T>(T[,] array, int positions)
  17.         {
  18.             int l1 = array.GetLength(0), l2 = array.GetLength(1);
  19.             T[,] result = array.Clone() as T[,];
  20.             for (int i = 0; i < l1; i++)
  21.             {
  22.                 for (int j = 0; j < l2; j++)
  23.                 {
  24.                     int jj = (j - positions) % l2;
  25.                     jj = jj < 0 ? jj + l2 : jj;
  26.                     result[i, j] = array[i, jj];
  27.                 }
  28.             }
  29.             return result;
  30.         }
  31.  
  32.         static void PrintArray<T>(T[,] array)
  33.         {
  34.             for (int i = 0; i < array.GetLength(0); i++)
  35.             {
  36.                 for (int j = 0; j < array.GetLength(1); j++)
  37.                 {
  38.                     Console.Write(array[i, j].ToString() + " ");
  39.                 }
  40.                 Console.WriteLine();
  41.             }
  42.             Console.WriteLine();
  43.         }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.909 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы