Как заполнить массив случайными числами

Перед нами стоит задача заполнить массив случайными числами, так что бы все числа не имели повторения, да еще числа должны быть определённого диапазона. Пример дан массив с размерностью 10, диапазоном чисел 100, необходимо сгенерировать массив таким образом что бы они не повторялись.

Разобьем задачу на части, а именно надо определить для начала какая размерность массива должна быть, об этом предлагаю спросить пользователя.

 Console.WriteLine("Введите размерность массива");
 int[] arr =new int[int.Parse(Console.ReadLine())];

Следующим шагом нужно запросить диапазон, да еще так что он был выше размерности массива иначе, мы не сможем создать уникальные числа в нем, а программа попросту зациклится, и выскочит ошибка.

Итоговой код решения можно видеть ниже:

class Program
    {
        static void Main(string[] args)
        {

            Console.WriteLine("Введите размерность массива");
            int[] arr =new int[int.Parse(Console.ReadLine())];

            Console.WriteLine("Введите минимальное число диапазона чисел");
            int min = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите максимальное число диапазона чисел");
            int max = int.Parse(Console.ReadLine());

            if ((max - min)< arr.Length)
            {
                Console.WriteLine("Диапазон чисел меньше чем, размерность массива");
                return;
            }

            GetRandomArr(ref arr,min,max);

            Console.WriteLine(String.Join(" ", arr));
            Console.ReadKey();
        }

        public static void GetRandomArr(ref int[] arr, int min, int max)
        {
            Random random = new Random();
            for (int i = 0; i < arr.Length; i++)
            {
                var num = random.Next(min, max);

                if (arr.Contains(num))
                {
                    i--;
                }
                else
                {
                    arr[i] = num;
                }
            }
        }
    }

Вывод программы:

Введите размерность массива
10
Введите минимальное число диапазона чисел
0
Введите максимальное число диапазона чисел
20
16 19 5 7 12 15 18 1 11 9

Заполнение массива случайными числами в C# — простая задача с использованием класса Random. Это удобно для создания тестовых данных и реализации игровых механик.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.