Losowanie bez powtórzeń - praca domowa - lekcja 21
Ostatnio zmodyfikowano 2015-07-22 17:11
lcam Temat założony przez niniejszego użytkownika |
Losowanie bez powtórzeń - praca domowa - lekcja 21 » 2015-07-22 10:13:24 Cześć, bardzo proszę kogoś o wykazanie błędu w rozumowaniu, jaki tu popełniam, ponieważ program nie wypisuje mi żadnych wartości. Na pewno jest tu parę karygodnych błędów - nawróćcie mnie na dobrą drogę. #include <iostream> #include<cstdlib> #include<ctime> using namespace std; int wpiszLiczby( int t_user[], int ilosc ) { int i = 0; int a = 0; do { cin.clear(); cin.sync(); cout << "Wpisz liczbe: "; cin >> a; i++; } while( i < ilosc ); } int losuj() { return( rand() % 3 ); } bool sprawdzCzyUzytkownika( int t_user[], int liczba, int ilosc ) { int i = 0; do { if( t_user[ i ] == liczba ) return true; i++; } while( i < ilosc ); return false; } bool sprawdzCzyPowtarza( int liczba, int t_los[], int ilosc ) { int i = 0; do { if( t_los[ i ] == liczba ) return true; i++; } while( i < ilosc ); return false; } int main() { srand( time( NULL ) ); int t_user[ 3 ]; wpiszLiczby( t_user, 3 ); int t_los[ 2 ]; int wylosowanych = 0; do { int liczba = losuj(); if( sprawdzCzyUzytkownika( t_user, liczba, wylosowanych ) == true ) { if( sprawdzCzyPowtarza( liczba, t_los, wylosowanych ) == false ) { t_los[ wylosowanych ] = liczba; wylosowanych++; } } } while( wylosowanych < 2 ); wylosowanych = 0; do { cout << t_los[ wylosowanych ] << endl; wylosowanych++; } while( wylosowanych < 2 ); return 0; }
|
|
carlosmay |
» 2015-07-22 10:52:39 int wpiszLiczby( int t_user[], int ilosc )
tutaj musi być void bo funkcja nie ma zwracać wartości. Natomiast tutaj do { int liczba = losuj(); if( sprawdzCzyUzytkownika( t_user, liczba, wylosowanych ) == true ) { if( sprawdzCzyPowtarza( liczba, t_los, wylosowanych ) == false ) { t_los[ wylosowanych ] = liczba; wylosowanych++; } } } while( wylosowanych < 2 );
jak liczba nie powtarza się to zamiast zapisać ją w tablicy, pomijasz tę czynność. Błąd jest w tym fragmencie. |
|
lcam Temat założony przez niniejszego użytkownika |
» 2015-07-22 17:11:13 Już wszystko rozumiem - czeski błąd w podejściu do programu połączony z ciemnotą umysłową:) Tak czy inaczej dziękuję za pomoc :) |
|
« 1 » |