Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Rozdział 21] Nie do końca rozumiem przykład - własna próba

Ostatnio zmodyfikowano 2015-08-27 12:12
Autor Wiadomość
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"
C/C++
//Program losujący 20 liczb. Z przedziału do 30. Bez powtorzen.
#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;
           
            //Jesli liczba znajduje sie juz w tablicy zwraca false aby jej ponownie nie wpisywac
        }
        licznik++;
    } while( licznik < wielkosc_tablicy );
   
    return false;
   
}
int main()
{
    ( srand( time( 0 ) ) );
    int tablica[ 20 ], losowana_liczba = 0, wielkosc_tablicy = 0;
    do //Wypisanie tablicy.
    {
        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:
C/C++
if( tablica[ licznik ] == losowana_liczba )
{
    return true;
    licznik++;
    //Jesli liczba znajduje sie juz w tablicy zwraca false aby jej ponownie nie wpisywac
}
licznik++
 powinien być poza klamrą.

Mam też jedno pytanie po co mi warunek:
C/C++
if( wielkosc_tablicy <= 0 )
{
    return false;
}
Przecież oczywiste jest że nie będę miał tablicy równej zero ?
P-136916
« 1 »
  Strona 1 z 1