Witam,
Mam problem dotyczący losowania. Próbuję napisać kod, w którym liczby nie będą się powtarzały. Niby wszystko jest OK, ale raz kompiluje się poprawnie, a raz po napisaniu ostatniej liczby wyskakuje okienko, że program przestał działać. Czy ktoś mógłby powiedzieć, a raczej napisać, gdzie tkwi szkopuł? Kod ten widnieje poniżej:
#include <iostream>
#include <windows.h>
#include <time.h>
#include <cstdlib>
using namespace std;
// Kompilator: CodeBlocks
// System: Windows 7
int main()
{
srand(time(NULL));
int ile_pytan = 20;
int ile_wylosowac = 5;
int ile_juz_wylosowano=0;
int *wylosowane = new int[ile_wylosowac+1];
bool losowanie_ok;
for (int i=1; i<=ile_wylosowac; i++)
{
do
{
int liczba=rand()%ile_pytan+1;
losowanie_ok=true;
for (int j=1; j<=ile_juz_wylosowano; j++)
{
if (liczba==wylosowane[j]) losowanie_ok=false;
}
if (losowanie_ok==true)
{
ile_juz_wylosowano++;
wylosowane[ile_juz_wylosowano]=liczba;
}
} while(losowanie_ok!=true);
}
cout<<"Wylosowane numery: ";
for (int i=1; i<=ile_wylosowac; i++)
{
cout<<wylosowane[i]<<" ";
}
return 0;
}