Nie wyświetla mi się żaden wynik. Zadanie z rodziału 21.
Ostatnio zmodyfikowano 2017-05-27 14:43
maly7 |
» 2017-05-20 13:45:49 Zastanów się jeszcze nad konstrukcją i nad tym co dokładnie chcesz zrobić: if( sprawdzanie( liczba, tg, wizz ) ) do { tg[ wizz ] = liczba; wizz++; } while( wizz < 5 ); Przede wszystkim brakuje klamer do instrukcji warunkowej, poza tym jeśli warunek się spełni to wszystkie elementy tg wypełni ci tą samą liczbą. W funkcji sprawdzanie: if( em == liczba ) do { return true; i++; } while( i < ile ); Tutaj też nie ma indeksu ale pewnie znów się po prostu nie skopiował. Strasznie bezsensowny kod (brak klamer pomijam), jeśli spełni się warunek to funkcja zwróci true i się zakończy wykonywać, więc po co tam jakieś do...while? Usiądź do tego i poważnie przeanalizuj cały swój kod :D |
|
karambaHZP |
» 2017-05-20 15:41:53 W kompilatorze mam ten indeks, nie skopiował się. |
Skopiował się, tylko nie czytałeś Zakładanie tematów na forumDebugger nic nie znajduje. |
A co ma ci pokazać? Masz za jego pomocą sprawdzić, dlaczego program działa tak jak działa, a nie jak tego chciałeś. |
|
tgOGemD12 Temat założony przez niniejszego użytkownika |
» 2017-05-27 10:46:49 Liczby już się nie powtarzają tylko od czasu do czasu liczba numer 5 nie jest z przedziału od 1 do 10, poproszęo wskazówkę dlaczego tak się dzieje. Tak wygląda kod : #include <iostream> #include <cstdlib> #include <ctime>
using namespace std;
int lottery() { return( rand() % 10 ) + 1; }
bool check( int kh, int em[], int gg ) { if( gg <= 0 ) return false; for( int i = 0; i < gg; i++ ) { if( em[ i ] == kh ) return true; } return false; }
int main() { srand( time( NULL ) ); int wizz = 0; int tg[ 5 ]; for( int i = 0; i < 5; i++ ) { int taylor = lottery(); if( check( taylor, tg, wizz ) == false ) { tg[ wizz ] = taylor; wizz++; } } for( int i = 0; i < 5; i++ ) { cout << " Number " << i + 1 << " is: " << tg[ i ] << "\n"; } return 0; }
|
|
karambaHZP |
» 2017-05-27 11:41:51 |
|
karambaHZP |
» 2017-05-27 14:27:09 Jak nazywać zmienne?Ta pętla for( int i = 0; i < 5; i++ ) { int taylor = lottery(); if( check( taylor, tg, wizz ) == false ) { tg[ wizz ] = taylor; wizz++; } } |
jest sprawcą całego zamieszania. Wykonuje się tylko pięć razy, niezależnie czy wystąpi powtórzenie losowania, dlatego ostatnie miejsca w tablicy mogą być niezapisane. Ja bym zrobił tak: constexpr int size = 5;
while( wizz < size ) { int taylor = lottery(); if( check( taylor, tg, wizz ) == false ) { tg[ wizz ] = taylor; ++wizz; } } |
|
tgOGemD12 Temat założony przez niniejszego użytkownika |
» 2017-05-27 14:43:52 Dzięki bardzo za wskazówki te dotyczące kodu jak i te dotyczące wypowiadania się na forum ! :) Temat zamykam i zabieram się za nastepne zadania, do usłyszenia ;) |
|
1 « 2 » |