Advertisement
AziLif

Shuffle

Jan 18th, 2025 (edited)
49
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.35 KB | None | 0 0
  1. using System;
  2.  
  3. namespace ConsoleApp2
  4. {
  5.     class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             string textRequestArrayLength = "Введите длинну массива:";
  10.  
  11.             int arraySize = VerifyForNumber(textRequestArrayLength);
  12.  
  13.             int[] numbers = new int[arraySize];
  14.  
  15.             FillArray(numbers, arraySize);
  16.  
  17.             ShowArray(numbers);
  18.  
  19.             ShuffleElements(numbers);
  20.  
  21.             ShowArray(numbers);
  22.         }
  23.  
  24.         static int VerifyForNumber(string userText)
  25.         {
  26.             Console.WriteLine(userText);
  27.  
  28.             string userInput = null;
  29.  
  30.             int number = 0;
  31.  
  32.             userInput = Console.ReadLine();
  33.  
  34.             while (int.TryParse(userInput, out number) == false || number <= 0)
  35.             {
  36.                 userInput = Console.ReadLine();
  37.             }
  38.  
  39.             return number;
  40.         }
  41.  
  42.         static void FillArray(int[] array, int arraySize)
  43.         {
  44.             Console.WriteLine($"В нашем массиве {arraySize} чисел. Давайте его заполним (после каждого числа нажмите \"Enter\"): ");
  45.  
  46.             for (int i = 0; i < array.Length; i++)
  47.             {
  48.                 string progressOfOccupancy = $"Осталось ввести значений: {arraySize}/{array.Length}";
  49.  
  50.                 array[i] = VerifyForNumber(progressOfOccupancy);
  51.  
  52.                 arraySize--;
  53.             }
  54.  
  55.             Console.Clear();
  56.         }
  57.  
  58.         static void ShowArray(int[] array)
  59.         {
  60.             for (int i = 0; i < array.Length; i++)
  61.             {
  62.                 Console.Write(array[i] + " ");
  63.             }
  64.  
  65.             Console.WriteLine("\b");
  66.         }
  67.  
  68.         static void ShuffleElements(int[] numbersForMixing)
  69.         {
  70.             int randomPosition;
  71.             int mixedElement;
  72.  
  73.             Random random = new();
  74.  
  75.             Console.WriteLine($"\nПеремешанный массив.");
  76.  
  77.             for (int i = numbersForMixing.Length - 1; i >= 0; i--)
  78.             {
  79.                 randomPosition = random.Next(i);
  80.  
  81.                 mixedElement = numbersForMixing[randomPosition];
  82.  
  83.                 numbersForMixing[randomPosition] = numbersForMixing[i];
  84.  
  85.                 numbersForMixing[i] = mixedElement;
  86.             }
  87.         }
  88.     }
  89. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement