problem z rand/srand

0

Witam.
Na początku zaznaczę ze uczę się programować od niedawna dlatego moje pytanie/a mogą się wydawać banalne.

#include <iostream>
#include <ctime>
#include <cstdlib>

using namespace std;


int main()
{
    int liczba[999];
    int nr_liczby=0;
    srand( time( NULL ) );

    do
    {
        liczba [ nr_liczby ] = ( rand() % 1000 ) + 1;
        nr_liczby++;
        cout << liczba[nr_liczby] <<endl;

    }while(nr_liczby<10);

    return 0;

} 

Chce wylosować 10 liczb z przedziału od 1 do 1000 jednak na ekranie program drukuje mi jakieś całkiem inne liczby. Pierwsza liczba zawsze ma wartość "0". Nie mam pojęcia w którym miejscu popełniłem błąd.

1

najpierw wyswietl liczbę, a potem zwiększ indeks

1

liczba [ nr_liczby ] = ( rand() % 1000 ) + 1;
cout << liczba[nr_liczby] <<endl;
nr_liczby++;

Poza tym po co tworzysz tak dużą tablicę - int liczba[999] na tylko 10 wylosowanych liczb ?

0

bo w rzeczywistości program będzie potrzebował tak dużej tablicy, a wyświetlałem tylko jej część żeby sprawdzić działanie.

Wszystko działa tak jak powinno. Wielkie dzięki ;)

0

W sumie sam byś do tego doszedł, gdybyś używał debuggera...


Opolski Portal Programistyczny
http://programowanie.opole.pl

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