Как переделать существующий случайный массив, чтобы иметь уникальные элементы (с ограничениями) - PullRequest
0 голосов
/ 27 сентября 2019

В вопросе задается функция, которая принимает массив целых чисел, предварительно заполненный случайными элементами.Функция проходит через массив линейно и, если какой-либо элемент равен любому из предыдущих элементов, регенерирует этот элемент.Это продолжается до тех пор, пока весь массив не будет сделан из уникальных элементов.

Я знаю, что это очень неэффективный способ создания массива с уникальными элементами, но я хотел попробовать.Я написал этот код, который попадает в бесконечный цикл.

void makeUnique(int* const objArr, const int& size)
{
    int i = 1,j = 0;
    do {
        j = 0;
        while (j < i) {
            if (objArr[j] == objArr[i]) {
                objArr[i] = rand();
                --i;
                break;
            }
            ++j;
        }
        ++i;
    } while (i<size);
}

Где я иду не так?

...