Funkcje - pierwsze starcie - problem z losowością liczb w zadaniu
Ostatnio zmodyfikowano 2016-03-20 17:49
glonorost Temat założony przez niniejszego użytkownika |
Funkcje - pierwsze starcie - problem z losowością liczb w zadaniu » 2016-03-19 14:01:06 Witam, rozpocząłem korzystanie z kursu (rewelacyjna sprawa), ale natknąłem się na jeden problem, którego nie jestem w stanie rozwiązać. Cała sprawa rozchodzi się o ostatnie zadanie w lekcji http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Funkcje-pierwsze-starcie/291 . Nie jestem w stanie zmusić programu, żeby "wypluł" różne losowe liczby, mimo zastosowania srand ( time(NULL) );. Za każdym razem wyświetlane są dokładnie te same cyfry. Uprzejmie proszę o wskazanie błędu. Z góry dzięki i pozdrawiam. #include <iostream> #include <cstdlib> #include <ctime> using namespace std;
int wylosuj( int begin, int end ) { srand( time( NULL ) ); int zakres = end - begin; int los = 0; los =( rand() % zakres ) + begin; return los; } int main() { srand( time( NULL ) ); cout << "Poczatek zakresu: "; int start = 0; do { cin.clear(); cin.sync(); cin >> start; } while( cin.fail() ); cout << endl << "Koniec zakresu: "; int stop = 0; do { do { cin.clear(); cin.sync(); cin >> stop; if( stop < start ) { cout << endl << "Koniec zakresu musi byc wiekszy niz poczatek. "; } } while( cin.fail() ); } while( stop < start ); int ile = 20; do { cout << endl << wylosuj( start, stop ); ile--; } while( ile > 0 ); return 0; } |
|
carlosmay |
» 2016-03-19 15:58:05 Nie jestem w stanie zmusić programu, żeby "wypluł" różne losowe liczby, mimo zastosowania srand ( time(NULL) );. |
srand( time( NULL ) ); dajemy tylko raz przed pierwszym losowaniem (nie w pętli), np. na początku main() . |
|
glonorost Temat założony przez niniejszego użytkownika |
» 2016-03-20 17:49:38 Dziękuję za pomoc. Wydawało mi się, że początkowo tak robiłem i dopiero później powieliłem to polecenie, ale chyba jednak wcześniej coś zepsułem. Teraz wszystko działa jak powinno :) |
|
« 1 » |