Другие языки программирования и технологии

Нужен код программы для Осуществления циклического сдвига элементов прямоугольной матрицы на n элементов вправо в с#

Осуществить циклический сдвиг элементов прямоугольной матрицы на п элементов вправо (в зависимости от введенного режима) , п может быть больше количества элементов в строке или столбце. В с #
> в зависимости от введенного режима
Что это значит?

using System;

namespace N81294473
{
  class Program
  {
    static void Main(string[] args)
    {
      Random rnd = new Random();
      int n = rnd.Next(3, 11);
      int m = rnd.Next(3, 20);
      int[,] a = new int[n, m];
      Console.WriteLine("Дана матрица {0}x{1}:", n, m);
      for (int i = 0; i < n; i++)
      {
        for (int j = 0; j < m; j++)
        {
          a[i, j] = rnd.Next(-99, 100);
          Console.Write("{0, 4}", a[i, j]);
        }
        Console.WriteLine();
      }
      Console.Write("Введите величину сдвига: ");
      int k;
      while (!int.TryParse(Console.ReadLine(), out k))
        Console.Write("Ошибка! Повторите ввод: ");
      for (int b = 1; b <= k; b++)
        for (int i = 0; i < n; i++)
        {
          int t = a[i, m - 1];
          for (int j = m - 1; j > 0; j--)
            a[i, j] = a[i, j - 1];
          a[i, 0] = t;
        }
      Console.WriteLine("Сдвинутая матрица: ");
      for (int i = 0; i < n; i++)
      {
        for (int j = 0; j < m; j++)
          Console.Write("{0, 4}", a[i, j]);
        Console.WriteLine();
      }
      Console.ReadKey();
    }
  }
}
¤Баяман¤ ¤Ашырбеков¤
¤Баяман¤ ¤Ашырбеков¤
51 590
Лучший ответ
1)создаете подпрограмму сдвига элементов матрицы вправо на 1 элемент вправо
и вызываете ее N раз
на С# не умею а на vba код сдвига строки на 1 выглядит:

bb = MM(nn)
for ii = 1 to nn-1
aa = MM(ii+1)
MM(ii+1)) = MM(ii)
next ii
MM(1) = bb

думаю что на C# сможете перевести
Костя Я
Костя Я
60 356

Похожие вопросы