kurs c++. Poziom 2 . dział 21 . Zadanie domowe nr.2 ( program zastyga ).
Ostatnio zmodyfikowano 2019-06-16 14:17
Lewy1607 Temat założony przez niniejszego użytkownika |
kurs c++. Poziom 2 . dział 21 . Zadanie domowe nr.2 ( program zastyga ). » 2019-06-16 13:50:40 Witam,po przerobieniu zadania domowego nr.1 na zadanie domowe nr.2 - program po wpisaniu 10 liczb z klawiatury zastyga. Mógłby mi ktoś,wytłumaczyć gdzie leży mój błąd i dlaczego tak się dzieje? Z góry Dziękuję. #include <iostream> #include <cstdlib> #include <ctime> #include <limits> bool czyBylaWylosowana( int iliczba, int tab[], int ile ); int wylosuj( int tab[] ); int wczytajLiczbe(); int main() { srand( time( 0 ) ); int wylosowane[ 10 ]; int i = 0; int wylosowanych = 0; do { wylosowane[ i ] = wczytajLiczbe(); i++; } while( i < 10 ); std::cout << "\n\n\n\n"; do { int liczba = wylosuj( wylosowane ); if( czyBylaWylosowana( liczba, wylosowane, wylosowanych ) == false ) { wylosowane[ wylosowanych ] = liczba; wylosowanych++; } } while( wylosowanych < 8 ); wylosowanych = 0; do { std::cout << wylosowane[ wylosowanych ] << std::endl; wylosowanych++; } while( wylosowanych < 8 ); return 0; } bool czyBylaWylosowana( int iliczba, int tab[], int ile ) { if( ile <= 0 ) { return false; } int i = 0; do { if( tab[ i ] == iliczba ) { return true; } i++; } while( i < ile ); return false; } int wylosuj( int tab[] ) { int a = tab[ rand() % 10 ]; return a; } int wczytajLiczbe() { int liczba; bool bCzyfalsz; do { std::cin >> liczba; bCzyfalsz = std::cin.fail(); std::cin.clear(); std::cin.ignore( std::numeric_limits < std::streamsize >::max(), '\n' ); if( bCzyfalsz == true ) { std::cout << "Nieprawidlowa wartosc,moze sproboj ponownie?" << std::endl; } } while( bCzyfalsz == true ); return liczba; }
Edit: Stworzenie osobnej tablicy na dane wyjściowe pomogło.Dziękuję za pomoc,temat zamykam. |
|
pekfos |
» 2019-06-16 14:17:45 Używasz jednej tablicy na dane wejściowe i wyjściowe. Tak też się da, ale twój kod sobie z tym nie radzi. |
|
« 1 » |