losowanie bez powtórzeń
Ostatnio zmodyfikowano 2012-11-28 22:36
przemko06 Temat założony przez niniejszego użytkownika |
losowanie bez powtórzeń » 2012-11-28 00:20:41 Bardzo proszę o pomoc. Nie wiem co zrobiłem źle, nie mogę do tego dojść :( po prostu nie działa sprawdzanie, czy liczba już nie została wylosowana. #include <iostream> #include <cstdlib> #include <ctime>
using namespace std;
bool sprawdzanie( int tab[], int wylosowana, int lp1 ) { if( lp1 <= 0 ); return true; int p = 0; do { if( tab[ p ] == wylosowana ); return false; p++; } while( p < lp1 ); return true; } int losujeliczbe( int od, int iloscliczb ) { int los; los =(( rand() % iloscliczb ) + od ); return los; }
int main() { srand( time( NULL ) ); int losuje; int zbior[ 5 ]; int lp = 0; do { losuje = losujeliczbe( 1, 10 ); if( sprawdzanie( zbior, losuje, lp ) == true ); { zbior[ lp ] = losuje; lp++; } } while( lp < 5 ); int p = 0; do { cout << zbior[ p ] << endl; p++; } while( p < 5 ); }
|
|
crash |
» 2012-11-28 19:17:06 Nie wiem czemu C++ na taki myk pozwala, ale stawiania średnika tuż za nawiasem kończącym if'a przechodzi bez żadnego krzyku. Wtedy nie wykonuje się instrukcja dla true, bo po prostu jej nie ma. Usuń średniki po nawiasach kończących instrukcje warunkowe, to będzie banglało. |
|
przemko06 Temat założony przez niniejszego użytkownika |
» 2012-11-28 22:36:16 Ale żałosny błąd popełniłem :/ Aż wstyd. Tylko że głupia trochę sprawa że program nie daje infa o tym, albo że bład. Dzięki za pomoc! |
|
« 1 » |