Witam.
Jestem całkowicie początkujący. W ramach ćwiczeń napisałem kod który generuje 6 pseudo przypadkowych liczb.
Po wygenerowaniu ostatniej liczby kod w tajemniczy i magiczny dla mnie sposób przypisuje zmiennej "ile_juz_wylosowano" wartość zmiennej "liczba", przez co nie wprowadza ostatniej wygenerowanej liczby do tablicy.
Czy był by ktoś tak uprzejmy wytłumaczyć mi dlaczego tak się dzieje?
Z góry dziękuję.
#include <iostream>
#include <time.h>
#include <cstdlib>
using namespace std;
int temp;
int liczba,i;
int wylosowane[5];
int ile_juz_wylosowano=0;
bool losowanie;
int main()
{
srand(time(NULL));
while(ile_juz_wylosowano<=5)
{
liczba=rand()%49+1;
losowanie=true;
cout<<"Ile wylosowanych: "<<ile_juz_wylosowano<<"\tWylosowana liczba: "<<liczba;
if(ile_juz_wylosowano==0)
{
wylosowane[0]=liczba;
cout<<"\tLiczba z tablicy: "<<wylosowane[0]<<endl;
}
else
{
for(i=1;i<=ile_juz_wylosowano;i++)
{
if(liczba==wylosowane[i])
{
ile_juz_wylosowano--;
losowanie=false;
}
}
temp=ile_juz_wylosowano; //zmiennej "temp" przypisuje wartosc zmiennej "ile_juz_wylosowano"
if(losowanie==true)
{
*cout<<"TEST Poczatek if: "<<ile_juz_wylosowano; * Tu zmienna "ile_juz_wylosowano" ma wartosc prawidlowa
wylosowane[ile_juz_wylosowano]=liczba;
*cout<<"TEST koniec if: "<<ile_juz_wylosowano; * Tu zmienna "ile_juz_wylosowano" przyjmuje wartosc zmiennej "liczba"
cout<<"\tLiczba z tablicy: "<<wylosowane[ile_juz_wylosowano]<<endl; //po zamianie zmiennej "ile_juz_wylosowano" na zmienna "temp" jest OK!
}
}
ile_juz_wylosowano++;
}
return 0;
}