Cześć! Postanowiłem napisać program zapełniający 10-elementową tablicę losowymi liczba mi z przedziału <1, 10> bez powtórzeń. Czyli oczywiście kazda liczba wystąpi dokładnie raz, nie mniej nie więcej. nie tworzyłem pomocniczej tablicy, po prostu porównuję aktualnie wylosowaną liczbę do każdej poprzedniej, jeżeli z którąś się powtórzy losuję do skutku ponownie. Mimi toczasem liczby się w tab powtarzają. Byłbym wdzięczny o wzkazanie błędu.
#include <iostream>
#include <time.h>
#include <cstdlib>
using namespace std;
int main()
{
srand(time(NULL));
int tab[10];
for (int i=0; i<10; i++) // do wylosowanie 10 liczb
{
tab[i]=rand()%10+1;
for (int j=0; j<i; j++) // porównuje z poprzednimi
{
while (tab[j]==tab[i]) // dopóki sie powtarza losuję jeszcze raz
{
tab[i]=rand()%10+1;
}
}
}
for (int i=0; i<10; i++)
{
cout << tab[i] << endl;
}
return 0;
}