Pentru ca tu ai
if (u--) cout << it << " ";
care afiseaza elementul respectiv daca valoarea lui u este diferita de 0, si nu pozitiva cum ai presupus tu. Cu alte cuvinte tu afisezi elementele 1 2 3 4 5 6 8 9 etc din set.
Varianta mai curata ar fi sa il decrementezi pe u in afara if-ului si apoi sa verifici daca e nenegativ pentru afisare.