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