В вопросе задается функция, которая принимает массив целых чисел, предварительно заполненный случайными элементами.Функция проходит через массив линейно и, если какой-либо элемент равен любому из предыдущих элементов, регенерирует этот элемент.Это продолжается до тех пор, пока весь массив не будет сделан из уникальных элементов.
Я знаю, что это очень неэффективный способ создания массива с уникальными элементами, но я хотел попробовать.Я написал этот код, который попадает в бесконечный цикл.
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);
}
Где я иду не так?