[Rozdział 21] Nie do końca rozumiem przykład - własna próba
Ostatnio zmodyfikowano 2015-08-27 12:12
Deivid Temat założony przez niniejszego użytkownika |
[Rozdział 21] Nie do końca rozumiem przykład - własna próba » 2015-08-27 12:12:59 Witam, proszę o podpowiedź na co powinienem zwrócić uwagę w moim "programie" #include<iostream> #include<ctime> #include<cstdlib> using namespace std; int funkcja_losujaca() { return( rand() % 30 ) + 1; } bool funkcja_sprawdzajaca( int tablica[], int losowana_liczba, int wielkosc_tablicy ) { if( wielkosc_tablicy <= 0 ) { return false; } int licznik = 0; do { if( tablica[ licznik ] == losowana_liczba ) { return true; } licznik++; } while( licznik < wielkosc_tablicy ); return false; } int main() { ( srand( time( 0 ) ) ); int tablica[ 20 ], losowana_liczba = 0, wielkosc_tablicy = 0; do { losowana_liczba = funkcja_losujaca(); if( funkcja_sprawdzajaca( tablica, losowana_liczba, wielkosc_tablicy ) == false ) { tablica[ wielkosc_tablicy ] = losowana_liczba; wielkosc_tablicy++; } } while( wielkosc_tablicy < 20 ); wielkosc_tablicy = 0; do { cout << tablica[ wielkosc_tablicy ] << endl; wielkosc_tablicy++; } while( wielkosc_tablicy < 20 ); return 0; }
Edit 1: Znalazłem swój pierwszy bład, funkcje_sprawdzajaca mialem zadeklarowana jako int, już zmieniłem na bool. Co dalej ? Edit 2: Znalazłem swój następny błąd: if( tablica[ licznik ] == losowana_liczba ) { return true; licznik++; }
licznik++ powinien być poza klamrą. Mam też jedno pytanie po co mi warunek: if( wielkosc_tablicy <= 0 ) { return false; }
Przecież oczywiste jest że nie będę miał tablicy równej zero ? |
|
« 1 » |