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

Problem ze zrozumieniem przykładu z rozdziału 21 i zadania.

Ostatnio zmodyfikowano 2014-06-25 01:28
Autor Wiadomość
snajperek130
Temat założony przez niniejszego użytkownika
» 2014-06-20 22:56:07
Dzieki wielkie, dziala !! :D
W zyciu nie zczailbym sie, ze to przez te glupie return true w nieodpowiedniej linijce jest przyczyna bledu ...
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

bool sprawdzenie( int liczba, int tablica2[], int ile ) //funkcja sprawdza, czy sie juz nie powtorzyly
{
    if( ile <= 0 )
    {
        return true;
    }
    else
    {
        int l = 0;
        do
        {
            if( liczba != tablica2[ l ] )
                 return true; // uwaga, l++ musi byc za return true !!!!!
           
            l++;
           
           
           
        } while( l != ile );
       
        return false;
    }
   
}
int wpisz( int tablica1[] ) // funkcja wpisuje liczby do tablicy1
{
    cout << "Wpisz 3 liczby:";
    int l = 0;
    do
    {
        cin >> tablica1[ l ];
        l++;
    } while( l < 3 );
   
}
int losuj( int tablica1[] )
{
    int a = rand() % 3; // z tego bedzie losowac, czyli losuje z zakresu 3 liczb
    int b = tablica1[ a ]; //  funkcja losuje z 3 podanych liczb 1 liczbe i zwraca do zmiennej b
    return b;
}

int wypisz( int tablica1[], int tablica2[] )
{
    cout << "Liczby podane:" << endl;
    cout << tablica1[ 0 ] << endl;
    cout << tablica1[ 1 ] << endl;
    cout << tablica1[ 2 ] << endl;
    cout << "Liczby wylosowane:" << endl;
    cout << tablica2[ 0 ] << endl;
    cout << tablica2[ 1 ] << endl;
   
}
int main()
{
    srand( time( NULL ) );
    int tablica1[ 3 ]; // tablica przechowujaca liczby podane przez uzytkownika
    int tablica2[ 2
    ]; // tablica przechowujaca liczby wylosowane
    wpisz( tablica1 );
    int l = 0;
    do
    {
        int liczba = losuj( tablica1 );
        tablica2[ l ] = liczba;
        if( sprawdzenie( liczba, tablica2, l ) == true )
       
             l++;
       
    } while( l != 2 );
   
   
   
    wypisz( tablica1, tablica2 );
   
   
   
    return 0;
}
P-112416
snajperek130
Temat założony przez niniejszego użytkownika
» 2014-06-21 17:09:06
Kurde, teraz problem z drugim zadaniem, liczby wylosowane liczby znowu sie powtarzaja ;/
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

bool sprawdzenie( int liczba, int tablica2[], int ile ) //funkcja sprawdza, czy sie juz nie powtorzyly
{
    if( ile = 0 )
    {
        return true;
    }
    else
    {
        int l = 0;
        do
        {
            if( liczba != tablica2[ l ] )
                 return true;
           
            l++;
           
        } while( l != 8 );
       
        return false;
    }
   
}
int wpisz( int tablica1[] ) // funkcja wpisuje liczby do tablicy1
{
    cout << "Wpisz 10 liczb:" << endl;
    int l = 0;
    do
    {
        cin >> tablica1[ l ];
        l++;
    } while( l != 10 );
   
}
int losuj( int tablica1[] )
{
    int a = rand() % 10; // z tego bedzie losowac, czyli losuje z zakresu 10 liczb
    int b = tablica1[ a ]; //  funkcja losuje z 3 podanych liczb 1 liczbe i zwraca do zmiennej b
    return b;
}

int wypisz( int tablica1[], int tablica2[] )
{
    int e = 0;
    int l = 0;
    do
    {
        cout << "Liczby podane:";
       
        cout << tablica1[ l ] << endl;
        l++;
    } while( l != 10 );
   
    cout << endl << endl;
    do
    {
        cout << "Liczby wylosowane:";
       
        cout << tablica2[ e ] << endl;
        e++;
    } while( e != 8 );
   
   
}

int main()
{
    srand( time( NULL ) );
    int tablica1[ 10 ]; // tablica przechowujaca liczby podane przez uzytkownika
    int tablica2[ 8 ]; // tablica przechowujaca liczby wylosowane
    wpisz( tablica1 );
    int l = 0;
    do
    {
        int liczba = losuj( tablica1 );
        tablica2[ l ] = liczba;
        if( sprawdzenie( liczba, tablica2, l ) == true )
       
             l++;
       
       
    } while( l != 8 );
   
   
   
    wypisz( tablica1, tablica2 );
   
   
   
    return 0;
}
P-112469
pekfos
» 2014-06-21 23:44:02
C/C++
if( ile = 0 )
..

C/C++
if( liczba != tablica2[ l ] )
     return true;

W ten sposób będziesz sprawdzać tylko pierwszą liczbę. (W dużym uproszczeniu. W zasadzie, sprawdzenie() jest do niczego, ale nie chce mi się nie mam czasu się nad bardziej rozpisywać..)
P-112486
snajperek130
Temat założony przez niniejszego użytkownika
i igt
» 2014-06-25 01:28:13
C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

bool sprawdzenie( int liczba, int tablica2[], int ile ) //funkcja sprawdza, czy sie juz nie powtorzyly
{
    if( ile <= 0 )
         return false;
   
    int i = 0;
    do
    {
        if( tablica2[ i ] == liczba )
             return true;
       
        i++;
    } while( i < ile );
   
    return false;
}


int wpisz( int tablica1[] ) // funkcja wpisuje liczby do tablicy1
{
    cout << "Wpisz 10 liczb:" << endl;
    int l = 0;
    do
    {
        cin >> tablica1[ l ];
        l++;
    } while( l < 10 );
   
}
int losuj( int tablica1[] )
{
    int a = rand() %( 10 ) + 1; // z tego bedzie losowac, czyli losuje z zakresu 10 liczb
    int b = tablica1[ a ]; //  funkcja losuje z 3 podanych liczb 1 liczbe i zwraca do zmiennej b
    return b;
}

int wypisz( int tablica1[], int tablica2[] )
{
    int e = 0;
    int l = 0;
    do
    {
        cout << "Liczby podane:";
       
        cout << tablica1[ l ] << endl;
        l++;
    } while( l != 10 );
   
    cout << endl << endl;
    do
    {
        cout << "Liczby wylosowane:";
       
        cout << tablica2[ e ] << endl;
        e++;
    } while( e < 8 );
   
   
}

int main()
{
    srand( time( NULL ) );
    int tablica1[ 10 ]; // tablica przechowujaca liczby podane przez uzytkownika
    int tablica2[ 8 ]; // tablica przechowujaca liczby wylosowane
    wpisz( tablica1 );
    int l = 0;
    do
    {
        int liczba = losuj( tablica1 );
        tablica2[ l ] = liczba;
        if( sprawdzenie( liczba, tablica2, l ) == false )
       
             l++;
       
       
    } while( l < 8 );
   
   
   
    wypisz( tablica1, tablica2 );
   
   
   
    return 0;
}

lub

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

bool sprawdzenie( int liczba, int tablica2[], int ile ) //funkcja sprawdza, czy sie juz nie powtorzyly
{
   
    if( ile <= 0 )
         return false;
   
    int i = 0;
    do
    {
        if( tablica2[ i ] == liczba )
             return true;
       
        if( tablica2[ i ] != liczba )
             i++;
       
    } while( i < ile );
   
    return false;
}


int wpisz( int tablica1[] ) // funkcja wpisuje liczby do tablicy1
{
    cout << "Wpisz 10 liczb:" << endl;
    int l = 0;
    do
    {
        cin >> tablica1[ l ];
        l++;
    } while( l < 10 );
   
}
int losuj( int tablica1[] )
{
    int a = rand() %( 10 ) + 1; // z tego bedzie losowac, czyli losuje z zakresu 10 liczb
    int b = tablica1[ a ]; //  funkcja losuje z 3 podanych liczb 1 liczbe i zwraca do zmiennej b
    return b;
}

int wypisz( int tablica1[], int tablica2[] )
{
    int e = 0;
    int l = 0;
    do
    {
        cout << "Liczby podane:";
       
        cout << tablica1[ l ] << endl;
        l++;
    } while( l != 10 );
   
    cout << endl << endl;
    do
    {
        cout << "Liczby wylosowane:";
       
        cout << tablica2[ e ] << endl;
        e++;
    } while( e < 8 );
   
   
}

int main()
{
    srand( time( NULL ) );
    int tablica1[ 10 ]; // tablica przechowujaca liczby podane przez uzytkownika
    int tablica2[ 8 ]; // tablica przechowujaca liczby wylosowane
    wpisz( tablica1 );
    int l = 0;
    do
    {
        int liczba = losuj( tablica1 );
        tablica2[ l ] = liczba;
        if( sprawdzenie( liczba, tablica2, l ) == false )
       
             l++;
       
       
    } while( l < 8 );
   
   
   
    wypisz( tablica1, tablica2 );
   
   
   
    return 0;
}
P-112686
1 « 2 »
Poprzednia strona Strona 2 z 2