Advertisement
TeT91

ДЗ: Сдвиг значений массива

May 15th, 2024 (edited)
558
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.43 KB | None | 0 0
  1. using System;
  2.  
  3. namespace CSLight
  4. {
  5.     internal class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             int[] numbers = { 1, 2, 3, 4, 5 };
  10.  
  11.             Console.WriteLine("Числа в массиве:");
  12.  
  13.             for (int i = 0; i < numbers.Length; i++)
  14.             {
  15.                 Console.Write(numbers[i] + " ");
  16.             }
  17.  
  18.             Console.WriteLine("\nНа сколько сдвинуть массив?");
  19.  
  20.             int shift = Convert.ToInt32(Console.ReadLine());
  21.  
  22.             while (shift > numbers.Length)
  23.             {
  24.                 shift -= numbers.Length;
  25.             }
  26.  
  27.             int[] shiftedBlock = new int[numbers.Length - shift];
  28.             int[] wrapedBlock = new int[shift];
  29.  
  30.             for (int i = 0; i < numbers.Length; i++)
  31.             {
  32.                 if (i <= (shift - 1))
  33.                 {
  34.                     wrapedBlock[i] = numbers[i];
  35.                 }
  36.                 else
  37.                 {
  38.                     shiftedBlock[i - shift] = numbers[i];
  39.                 }
  40.             }
  41.  
  42.             shiftedBlock.CopyTo(numbers, 0);
  43.             wrapedBlock.CopyTo(numbers, numbers.Length - shift);
  44.  
  45.             Console.WriteLine("Сдвинутый массив");
  46.             for (int i = 0; i < numbers.Length; i++)
  47.             {
  48.                 Console.Write(numbers[i] + " ");
  49.             }
  50.  
  51.             Console.ReadKey();
  52.         }
  53.     }
  54. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement