Перед нами стоит задача заполнить массив случайными числами, так что бы все числа не имели повторения, да еще числа должны быть определённого диапазона. Пример дан массив с размерностью 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
. Это удобно для создания тестовых данных и реализации игровых механик.