Zmienna w magiczny sposob przejmuje wartosc innej zmiennej

0

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;

}

0

na początek wstaw kod w znaczniki

0

tak na szybko

 while(ile_juz_wylosowano<=5)

o jedno przejście za dużo, to samo tu: for(i=1;i<=ile_juz_wylosowano;i++)

0

losujesz 6 liczb od 0 do 5 a tablica ma tylko 5 miejsc... jest szansa że za twoją tablica leży ta zmienna i jak wychodzisz poza zakres tablicy to włazisz na nią

0
Niikelion napisał(a):

losujesz 6 liczb od 0 do 5 a tablica ma tylko 5 miejsc... jest szansa że za twoją tablica leży ta zmienna i jak wychodzisz poza zakres tablicy to włazisz na nią

Ale wstyd taki błąd.

Serdecznie dziękuję bardzo :-)

0
kaczus napisał(a):

tak na szybko

 while(ile_juz_wylosowano<=5)

o jedno przejście za dużo, to samo tu: for(i=1;i<=ile_juz_wylosowano;i++)



Dziękuję bardzo :-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1