Berux Temat założony przez niniejszego użytkownika |
lekcja 21,zadanie 1 -co jest nie tak » 2012-07-27 17:44:47 Napisałem kod,ale coś jest źle. Gdy program się uruchomi a ja wpiszę 3 liczby, to program nie chce przejść do dalszej części kodu. #include <iostream> #include <cstdlib> #include <ctime>
using namespace std;
void wczytywanie( int t[] ) { int i = 0; do { cin >> t[ i ]; i++; } while( i < 3 ); }
bool sprawdzanie( int t[], int ile, int iLiczba ) { if( ile <= 0 ) return false; int i = 0; do { if( t[ i ] == iLiczba ) return true; } while( i < ile ); return false; } int losowanie() { return( rand() % 3 ) + 0; } int main() { srand( time( NULL ) ); int wczytane[ 3 ]; int wylosowanych = 0; wczytywanie( wczytane ); do { int liczba = losowanie(); if( sprawdzanie( wczytane, wylosowanych, liczba ) == false ) { wczytane[ wylosowanych ] = liczba; wylosowanych++; } } while( wylosowanych < 2 ); wylosowanych = 0; do { cout << wczytane[ wylosowanych ] << ","; wylosowanych++; } while( wylosowanych < 2 ); return 0; }
Z góry dzięki. |
|
Nevea |
» 2012-07-27 18:34:35 Znalazłem jeden błąd(Moje wcześniejsze rozwiązanie było do bani, ponieważ nie przeczytałem treści zadania :D) Tutaj: do { if( t[ i ] == iLiczba ) return true; } while( i < ile );
Dodaj i++; Ponieważ pętla wykonuje się w nieskończoność. |
|
Berux Temat założony przez niniejszego użytkownika |
» 2012-07-27 22:17:50 dzięki za odpowiedź, przeoczyłem błąd. |
|
Berux Temat założony przez niniejszego użytkownika |
» 2012-07-27 23:21:43 Pomocy,drugie zadanie! Znowu coś nie tak, ale teraz coś z losowaniem bez powtórzeń.Z góry dziękuję za pomoc i przepraszam że tak dużo pytań zadaję w tym rozdziale. Kod: #include <iostream> #include <cstdlib> #include <ctime>
using namespace std;
void wczytywanie( int t[] ) { int i = 0; do { cin >> t[ i ]; i++; } while( i < 10 ); }
bool sprawdzanie( int t[], int ile, int iLiczba ) { if( ile <= 0 ) return false; int i = 0; do { if( t[ i ] == iLiczba ) return true; i++; } while( i < ile ); return false; } int losowanie() { return( rand() % 10 ) + 0; } int main() { srand( time( NULL ) ); int wczytane[ 10 ]; int wylosowanych = 0; wczytywanie( wczytane ); do { int liczba = losowanie(); if( sprawdzanie( wczytane, wylosowanych, liczba ) == false ) { cout << wczytane[ liczba ] << ", "; wylosowanych++; } } while( wylosowanych < 8 ); return 0; }
|
|
SeaMonster131 |
» 2012-07-27 23:33:01 Pomocy,drugie zadanie! Znowu coś nie tak, ale teraz coś z losowaniem bez powtórzeń. |
"Znowu coś nie tak?" Kosmici zaatakowali Ziemię czy co? Napisz co jest nie tak - ułatwi to nam zadanie. |
|
Berux Temat założony przez niniejszego użytkownika |
» 2012-07-27 23:37:21 Poprostu, gdy wpisuję te 10 liczb to losuje 8 liczb, ale się powtarzają.
|
|
Berux Temat założony przez niniejszego użytkownika |
» 2012-07-28 17:59:57 //odświeżam temat
pomóżcie |
|
mati1qazxsw2 |
» 2012-07-28 21:02:30 unsigned int wylosowanych = 10; ... do { int liczba = losowanie(); if( sprawdzanie( wczytane, wylosowanych, liczba ) == false ) { cout << wczytane[ liczba ] << ", "; wylosowanych++; } } while( wylosowanych < 10 );
...
|
|
« 1 » 2 3 |