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

Lekcja 2.21 Problem z zadaniem

Ostatnio zmodyfikowano 2016-08-15 23:40
Autor Wiadomość
Koperek
Temat założony przez niniejszego użytkownika
Lekcja 2.21 Problem z zadaniem
» 2016-08-15 22:13:33
Zdaję sobie sprawę, że jest już sporo tematów o tej lekcji, lecz po 2h analizowania programów innych użytkowników oraz pisania od nowa swojego, nie potrafię znaleźć błędu. Problem z zadaniem domowym: "Napisz program, który wczyta 3 liczby podane przez użytkownika do tablicy, a następnie wylosuje 2 z nich bez powtórzeń. Wynik wypisz na ekran. Postaraj się napisać ten program w oparciu o funkcje."
C/C++
#include<iostream>
#include<ctime>
#include<cstdlib>
using namespace std;

bool sprawdzanieLiczb( int liczba, int wylosowane[ 2 ], int licznik )
{
   
    int i = 0;
    do
    {
        if( wylosowane[ i ] == liczba )
        {
            cout << "debug";
            return true;
            i++;
        }
    } while( i < licznik );
   
    return false;
}

int losowanieLiczb( int podane[ 3 ] )
{
    srand( time( NULL ) );
    int a =( rand() % 3 );
    return podane[ a ];
}

int main()
{
    int podane[ 3 ];
    int wylosowane[ 2 ];
    int a = 0;
   
    do
    {
        cin >> podane[ a ];
        a++;
    } while( a < 3 );
   
    a = 0;
   
    do
    {
        int liczba = losowanieLiczb( podane );
        if( sprawdzanieLiczb( liczba, wylosowane, a ) == false )
        {
            wylosowane[ a ] = liczba;
            a++;
        }
    } while( a < 2 );
   
    a = 0;
   
    do
    {
        cout << wylosowane[ a ];
        a++;
    } while( 2 > a );
   
    system( "pause" );
    return 0;
}
Program nie wyświetla wylosowanych liczb.
P-150908
pekfos
» 2016-08-15 23:14:27
C/C++
do
{
    if( wylosowane[ i ] == liczba )
    {
        cout << "debug";
        return true;
        i++;
    }
} while( i < licznik );
Jeśli warunek w if nie zostanie spełniony, program nigdy nie wyjdzie z pętli.
P-150909
Koperek
Temat założony przez niniejszego użytkownika
» 2016-08-15 23:40:10
Głupi błąd. Przez pośpiech i++ wpisałem do środka nawiasu nie zwracając na nic uwagi.
Cytując autora poradnika "Pośpiech w programowaniu jest zawsze zgubny. ". Dzięki wielkie :D
P-150912
« 1 »
  Strona 1 z 1