Чтобы написать подпрограмму на C, вам нужно поддерживать состояние. Самый простой способ сделать это - использовать переменную static
. Для этого примера это будет выглядеть примерно так:
int ForLargeQuantityAndRange(int init_quantity, int init_range)
{
static int n;
static int quantity, range;
if (init_quantity > 0)
{
n = 0;
quantity = init_quantity;
range = init_range;
}
if (n++ < quantity)
{
int r = Random(range);
while (!used_add(r))
r = Random(range);
return r;
}
/* Quantity exceeded */
return -1;
}
... где вы бы назвали его с помощью (quantity, range)
для инициализации новой последовательности и (0, 0)
для продолжения предыдущей последовательности.
Обратите внимание, что вам нужно будет предоставить реализации функций Random()
и used_add()
.