Lekcja 2.21 Problem z zadaniem
Ostatnio zmodyfikowano 2016-08-15 23:40
Koperek Temat założony przez niniejszego użytkownika |
Lekcja 2.21 Problem z zadaniem » 2016-08-15 22:13:33 Zdaję sobie sprawę, że jest już sporo tematów o tej lekcji, lecz po 2h analizowania programów innych użytkowników oraz pisania od nowa swojego, nie potrafię znaleźć błędu. Problem z zadaniem domowym: "Napisz program, który wczyta 3 liczby podane przez użytkownika do tablicy, a następnie wylosuje 2 z nich bez powtórzeń. Wynik wypisz na ekran. Postaraj się napisać ten program w oparciu o funkcje." #include<iostream> #include<ctime> #include<cstdlib> using namespace std;
bool sprawdzanieLiczb( int liczba, int wylosowane[ 2 ], int licznik ) { int i = 0; do { if( wylosowane[ i ] == liczba ) { cout << "debug"; return true; i++; } } while( i < licznik ); return false; }
int losowanieLiczb( int podane[ 3 ] ) { srand( time( NULL ) ); int a =( rand() % 3 ); return podane[ a ]; }
int main() { int podane[ 3 ]; int wylosowane[ 2 ]; int a = 0; do { cin >> podane[ a ]; a++; } while( a < 3 ); a = 0; do { int liczba = losowanieLiczb( podane ); if( sprawdzanieLiczb( liczba, wylosowane, a ) == false ) { wylosowane[ a ] = liczba; a++; } } while( a < 2 ); a = 0; do { cout << wylosowane[ a ]; a++; } while( 2 > a ); system( "pause" ); return 0; } Program nie wyświetla wylosowanych liczb. |
|
pekfos |
» 2016-08-15 23:14:27 do { if( wylosowane[ i ] == liczba ) { cout << "debug"; return true; i++; } } while( i < licznik ); |
Jeśli warunek w if nie zostanie spełniony, program nigdy nie wyjdzie z pętli. |
|
Koperek Temat założony przez niniejszego użytkownika |
» 2016-08-15 23:40:10 Głupi błąd. Przez pośpiech i++ wpisałem do środka nawiasu nie zwracając na nic uwagi. Cytując autora poradnika "Pośpiech w programowaniu jest zawsze zgubny. ". Dzięki wielkie :D |
|
« 1 » |