Zamiast fora po losowaniu liczby powinien być if, który sprawdza czy ile_juz_wylosowane jest większe od zera i czy liczba, którą wylosowano się nie powtarza. Oto cały, przepisany kod, który powinien działać:
#include <iostream>
#include <windows.h>
#include <time.h>
using namespace std;
int main()
{
srand(time(NULL));
int ile_pytan=20;
int ile_wylosowac=5;
int ile_juz_wylosowano=0;
int *wylosowane = new int[ile_wylosowac];
bool losowanie_ok;
for(int i=0; i<ile_wylosowac; i++) {
do {
int liczba=rand()%ile_pytan+1;
losowanie_ok=true;
if (ile_juz_wylosowano > 0 && liczba == wylosowane[ile_juz_wylosowano]) {
losowanie_ok=false;
}
if(losowanie_ok==true) {
ile_juz_wylosowano++;
wylosowane[ile_juz_wylosowano]=liczba;
}
}while (!losowanie_ok);
}
cout<<"Wylosowane numer: ";
for(int i=1; i<=ile_wylosowac; i++)
cout<<wylosowane[i]<<" ";
return 0;
}
Mam nadzieję, że pomogłem. Pozdrawiam.