Задачка такая: забить массив из 10 элементов, 10 случайными числами от 0-20, но, чтобы они не повторялись. Внутри цикла, который заполняет массив рандомными числами, сделал вложенный цикл, которые пробегает уже по существующим элементам в массиве и сравнивает их с текущим. Если найдено совпадение - генерировать новое число, а счетчик пробега обнулить и пробежать по-новой. Но чота не робит.
if (array[j] == array[i]) {
array[i] = rand() % 10 + 10;
j = 0;
}

Подозреваю, что когда ты обнуляешь цикл, то он больше не проверяет элемент 0, т. к. в момент итерации происходит j++.
Попробуй вместо j=0; сделать j=-1;
могу ошибаться...
1. Ты генерируешь случайные числа в диапазоне 10..19, а не 0..20. В обеих местах должно быть:
array[i] = rand() % 21;
2. Создай массив из 21 элемента с числами 0..20, перемешай его и возьми первые 10 элементов.
// создаём массив
int array[21];
for (int i = 0; i < 21; ++i) { array[i] = i; }
// перемешиваем и выводим 10 элементов массива
for (int i = 0; i < 10; ++i) {
int j = rand() % (21 - i) + i;
int tmp = array[i];
array[i] = array[j];
array[j] = tmp;
cout << array[i] << endl;
}
// Игра: найди массив в коде)
#include <iostream>
#include <random>
#include <set>
#include <array>
#include <algorithm>
#include <chrono>
#include <iterator>
using namespace std;
int main() {
const auto n = 10U;
array<int, n> box;
set<int> tmp;
const uniform_int_distribution<> uid(0, 20);
mt19937 gen{ random_device()() };
while (tmp.size() < n) tmp.insert(uid(gen));
copy(tmp.begin(), tmp.end(), box.begin());
const auto seed = static_cast<unsigned>(chrono::system_clock::now().time_since_epoch().count());
shuffle(box.begin(), box.end(), default_random_engine(seed));
copy(box.begin(), box.end(), ostream_iterator<int>(cout, "\n"));
cin.get();
}
быть может он опять сгенерировал число 12, и пошел дальше. Там ж нет бесконечной проверки.
Пробни прост во втором цикле, если встретил подобие, сделать break, и i--;
И зачем обнулять j, если цикл for итак начинает с нуля..
-------------------------------------------------------------------------------
UPD:
Ошибся, все же есть. Вот почему ты обнуляешь j)) чтобы еще раз проверить