Пример в C++ надо перевести на C#. Циклический сдвиг элементов массива вправо
Формулировка задачи:
Дан массив размера N. Осуществить циклический сдвиг элементов массива вправо на одну позицию (при этом A1 перейдет в A2, A2 — в A3, …, AN — в A1). Вот пример в C++ надо перевести на C#
Листинг программы
- int main()
- {
- srand(time(0));
- const int size = 20;
- int arr[size];
- for (int i = 0; i < size; i++)
- {
- arr[i] = rand() % 20;
- std::cout << arr[i] << " ";
- }
- int tmp = arr[size - 1];
- for (int i = size - 1; i >= 0; i--)
- arr[i + 1] = arr[i];
- arr[0] = tmp;
- std::cout << std::endl;
- for (int i = 0; i < size; i++) // выводим получившийся массив
- std::cout << arr[i] << " ";
- return 0;
- }
Решение задачи: «Пример в C++ надо перевести на C#. Циклический сдвиг элементов массива вправо»
textual
Листинг программы
- using System;
- namespace ConsoleApplication4
- {
- class Program
- {
- static void Main(string[] args)
- {
- const int size = 10;
- int[] arr = new int[size];
- Random rnd = new Random();
- for (int i = 0; i < size; i++)
- arr[i] = rnd.Next(1, 45);
- Console.WriteLine(string.Join(" ",arr) + "\r\n");
- //right shift 2
- Console.WriteLine(string.Join(" ", RightShift(arr, 2)) + "\r\n");
- // left shift 4
- Console.WriteLine(string.Join(" ",LeftShift(arr,4)));
- Console.ReadKey();
- }
- static int[] LeftShift(int[] arr, int count)
- {
- count = count%arr.Length;
- int[] tmp = new int[arr.Length];
- for (int i = 0; i < arr.Length; i++)
- tmp[i] = arr[(i + count)%arr.Length];
- return tmp;
- }
- static int[] RightShift(int[] arr, int count)
- {
- count = count % arr.Length;
- int[] tmp = new int[arr.Length];
- for (int i = arr.Length - 1; i >= 0; i--)
- tmp[i] = arr[(i - count + arr.Length) % arr.Length];
- return tmp;
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д