Пример в 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; } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д