Lekcja 21 zad. 2 powtórzenia,
Ostatnio zmodyfikowano 2013-09-11 19:47
Ven_64 Temat założony przez niniejszego użytkownika |
Lekcja 21 zad. 2 powtórzenia, » 2013-09-10 19:35:21 Witam, mam kolejny problem z zadaniem 2. A mianowicie program raz działa "dobrze", losując bez powtórzeń, a innym razem zdarzają się powtórzenia, a ja za nic w świecie błędu znaleźć nie potrafię. Z góry bardzo dziękuje za pomoc. #include <iostream> #include <cstdlib> #include <ctime>
using namespace std; bool sprawdz( int ilemamy, int sprawdzone[], int nspr ) { int x = 0; do { if( nspr == sprawdzone[ x ] ) return false; x++; } while( x < ilemamy ); return true; } int losuj() { return( rand() % 10 ) + 0; } int main() { srand( time( 0 ) ); int liczby[ 10 ]; int k = 0; do { cin >> liczby[ k ]; k++; } while( k < 10 ); int ktora[ 8 ]; losuj(); ktora[ 0 ] = losuj(); int k2 = 0; int k3 = 1; int niesprawdzona; do { niesprawdzona = losuj(); sprawdz( k2, ktora, niesprawdzona ); if( sprawdz( k2, ktora, niesprawdzona ) == true ) { ktora[ k3 ] = niesprawdzona; k2++; k3++; } } while( k2 < 7 ); int q = 0; do { cout << liczby[ ktora[ q ] ] << " "; q++; } while( q < 8 ); return 0; }
Mały bałagan mam w kodzie. |
|
pekfos |
» 2013-09-10 19:46:05 Po co tu k2, k3, q i ta linia? sprawdz( k2, ktora, niesprawdzona );
W sprawdzaniu pomijasz jeden element. |
|
Ven_64 Temat założony przez niniejszego użytkownika |
» 2013-09-11 19:47:26 Wielkie dzięki za pomoc, już działa, poprawa: } while( x <= ilemamy ); |
|
« 1 » |