Пример в 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;
        }
    }
}

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


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

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

9   голосов , оценка 3.889 из 5
Похожие ответы