Losowanie 6 liczb z zakresu 1-49 bez powtórzeń
Ostatnio zmodyfikowano 2013-02-04 23:39
Vectrom Temat założony przez niniejszego użytkownika |
Losowanie 6 liczb z zakresu 1-49 bez powtórzeń » 2013-02-04 22:18:34 Cześć, czołem :) Mam taki mały programik losujący 6 liczb z zakresu 1-49: #include <iostream> #include <ctime> #include <cstdlib> using namespace std;
int main() { srand( time( NULL ) ); int tablica[ 5 ]; cout << "Totolotek!" << endl << endl; for( int i = 0; i < 6; i++ ) { tablica[ i ] = rand() % 49 + 1; cout << tablica[ i ] << " "; } }
Jak (najlepiej w prosty sposób) przerobić go, aby wylosowane liczby się nie powtarzały? Pozdrawiam. |
|
czosnek17 |
» 2013-02-04 22:21:40 Zrób tablicę o wielkości takiej, jak ilość liczb, które losujesz. Po wylosowaniu liczby sprawdź, czy nie ma jej w tablicy. Jeżeli nie ma to ją tam zapisz, jeżeli jest to losuj jeszcze raz. |
|
Vectrom Temat założony przez niniejszego użytkownika |
» 2013-02-04 23:39:48 Zrobiłem to jakoś, może nie po mistrzowsku, ale działa. #include <iostream> #include <ctime> #include <cstdlib> using namespace std;
int main() { srand( time( NULL ) ); int tablica[ 6 ]; int x; cout << "Totolotek!" << endl << endl; for( int i = 0; i < 6; i++ ) { do { x =( rand() % 49 ) + 1; } while(( tablica[ 0 ] == x ) ||( tablica[ 1 ] == x ) ||( tablica[ 2 ] == x ) ||( tablica[ 3 ] == x ) ||( tablica[ 4 ] == x ) ||( tablica[ 5 ] == x ) ); tablica[ i ] = x; cout << tablica[ i ] << " "; } cin.get(); return 0; }
EDIT: coś źle mam. EDIT2: zmieniłem kod, myślę, że robi co powinien. |
|
« 1 » |