Пример в C++ надо перевести на C#. Циклический сдвиг элементов массива вправо

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

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

Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на одну позицию (при этом A1 перейдет в A2, A2 — в A3, …, AN — в A1). Вот пример в C++ надо перевести на C#
Листинг программы
  1. int main()
  2. {
  3. srand(time(0));
  4. const int size = 20;
  5. int arr[size];
  6. for (int i = 0; i < size; i++)
  7. {
  8. arr[i] = rand() % 20;
  9. std::cout << arr[i] << " ";
  10. }
  11. int tmp = arr[size - 1];
  12. for (int i = size - 1; i >= 0; i--)
  13. arr[i + 1] = arr[i];
  14. arr[0] = tmp;
  15. std::cout << std::endl;
  16. for (int i = 0; i < size; i++) // выводим получившийся массив
  17. std::cout << arr[i] << " ";
  18. return 0;
  19. }

Решение задачи: «Пример в C++ надо перевести на C#. Циклический сдвиг элементов массива вправо»

textual
Листинг программы
  1. using System;
  2.  
  3. namespace ConsoleApplication4
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             const int size = 10;
  10.             int[] arr = new int[size];
  11.             Random rnd = new Random();
  12.  
  13.             for (int i = 0; i < size; i++)
  14.                  arr[i] = rnd.Next(1, 45);
  15.  
  16.             Console.WriteLine(string.Join(" ",arr) + "\r\n");
  17.  
  18.             //right shift 2
  19.             Console.WriteLine(string.Join(" ", RightShift(arr, 2)) + "\r\n");
  20.  
  21.             // left shift 4
  22.             Console.WriteLine(string.Join(" ",LeftShift(arr,4)));
  23.            
  24.             Console.ReadKey();
  25.  
  26.         }
  27.  
  28.         static int[] LeftShift(int[] arr, int count)
  29.         {
  30.             count = count%arr.Length;
  31.             int[] tmp = new int[arr.Length];
  32.             for (int i = 0; i < arr.Length; i++)
  33.                 tmp[i] = arr[(i + count)%arr.Length];
  34.             return tmp;
  35.         }
  36.  
  37.         static int[] RightShift(int[] arr, int count)
  38.         {
  39.             count = count % arr.Length;
  40.             int[] tmp = new int[arr.Length];
  41.             for (int i = arr.Length - 1; i >= 0; i--)
  42.                 tmp[i] = arr[(i - count + arr.Length) % arr.Length];
  43.             return tmp;
  44.         }
  45.     }
  46. }

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


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

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

9   голосов , оценка 3.889 из 5

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

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

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