Rozdział 21 losowanie bez powtorzen - puste okno programu
Ostatnio zmodyfikowano 2018-10-10 23:25
hbrodaty Temat założony przez niniejszego użytkownika |
Rozdział 21 losowanie bez powtorzen - puste okno programu » 2018-10-10 22:12:09 Hej, Potrzebuje pomocy bo nie wiem czy osleplem czy to poczatki schizofrenii :) Pisalem na wlasna reke kod dla losowania bez powtorzen zgodnie z tym co w rozdziale 21. Po napisaniu kodu i uruchomieniu programu otrzymywalem czarne puste okienko konsoli. Uznalem ze pewnie popelnilem bledy i zaczalem dostosowywac to co napisalem do kodu podanego w rozdziale. Zmienilem praktycznie caly swoj kod tak ze stal sie niemal wierna kopia tego z rozdzialu (poprzestawialem nawet kolejnosc funkcji wylosuj i bool czybylawylosowana i nazwalem tak samo zmienne zeby miec pewnosc ze kopiuje dokladnie oraz wrzucilem wyswietlanie liczb do funkcji main bo wczesniej mialem to w osobnej funkcji) ale problem pozostal i wyswietla mi sie puste okienko. Żeby sprawdzic czy program w ogole cos robi wrzucilem cout << liczba << endl; zaraz za int liczba = wylosuj(); w petli do while i faktycznie wtedy widac ze program losuje i wyswietla liczby z podanego zakresu ale robi to bez konca czyli z powtorzeniami. Nie wiem jednak co ostatecznie jest nie tak. Oto kod juz po zmianach i upodobnieniu do tego z kursu: #include <iostream> #include <cstdlib> #include <ctime>
using namespace std;
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() { return( rand() % 10 ) + 1; }
int main() { srand( time( 0 ) ); int wylosowane[ 5 ]; int wylosowanych = 0; do { int liczba = wylosuj(); if( czybylawylosowana( liczba, wylosowane, wylosowanych ) == false ) { wylosowane[ wylosowanych ] = liczba; wylosowanych++; } } while( wylosowanych < 5 ); wylosowanych = 0; do { cout << wylosowane[ wylosowanych ] << endl; wylosowanych++; } while( wylosowanych < 5 ); return 0; }
|
|
pekfos |
» 2018-10-10 22:28:43 if( tab[ i ] == iliczba );
return true; |
Średnik. |
|
hbrodaty Temat założony przez niniejszego użytkownika |
pekfos » 2018-10-10 23:25:38 wielkie dzieki, sprawdzalem kod x razy i juz bym tego nie znalazl. Dzieki tez za poprawienie formatowania wklejonego kodu. |
|
« 1 » |