expected ')' before numeric constant - dlaczego się wyświetla i jak to naprawić

0

Błąd - Tak jak w tytule
Komunikat: error: expected ')' before numeric constant
Program ma zadziałać następująco:

  • Użytkownik podaje 3 liczby
  • Program losuje liczby bez powtórzeń spośród liczb podanych przez użytkownika
  • Program wypisuje wylosowane liczby

Tak wygląda kod:

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

bool czyWylosowana( int iLiczba, int tab[], int ile )
{
    if( ile <= 0)
        return false;

    int i = 0;
    do
    {
        if( tab[ i ] == iLiczba )
        {
            return true;

            i ++;
        }
    } while( i < ile );

    return false;
}

int podajLiczbe()
{
    int podaj;
    cin >> podaj;
    return podaj;
}

int rand( int a, int b, int c )
{
    return rand();
}

int losowanie( int liczba[ 3 ], int los )
{
    liczba[ los ] = rand( liczba[ 0 ], liczba[ 1 ], liczba[ 2 ] );

    return liczba[ los ];
}

int main()
{
    srand( time( 0 ) );
    int ilosc = 0;
    int podane[ 3 ];
    do
    {
        podane[ ilosc ] = podajLiczbe();
        ilosc ++;
    } while( ilosc < 3 );

    int wylosowane[ 2 ];
    int wylosowanych = 0;
    ilosc = 0;
    do
    {
        int liczba = losowanie( podane 3 , ilosc ); // bład jest w tej linijce
        if( czyWylosowana( liczba, wylosowane 2 , wylosowanych ) == false ) // i w tej też
        {
            wylosowane[ wylosowanych ] = liczba;
            wylosowanych ++;
        }
    } while( wylosowanych < 2 );

    wylosowanych = 0;
    do
    {
        cout << wylosowane[ wylosowanych ] << ", ";
        wylosowanych ++;
    } while( wylosowanych < 2 );

    return 0;
}

Mam nadzieję szybko otrzymać pomoc.

1

int liczba = losowanie( podane 3 , ilosc );

podane 3

co to ma oznaczac?

tak samo wylosowane 2

1

https://dsp.krzaq.cc/post/445/jak-zadawac-pytania-na-forum/

Nie podajesz ani na której linii, ani nawet treści komunikatu.

        int liczba = losowanie( podane 3 , ilosc );
        if( czyWylosowana( liczba, wylosowane 2 , wylosowanych ) == false )

???

Swoją drogą: https://dsp.krzaq.cc/post/1304/zwi-4-jak-wylosowac-elementy-bez-powtorzen/

0
kq napisał(a):

https://dsp.krzaq.cc/post/445/jak-zadawac-pytania-na-forum/

Nie podajesz ani na której linii, ani nawet treści komunikatu.

        int liczba = losowanie( podane 3 , ilosc );
        if( czyWylosowana( liczba, wylosowane 2 , wylosowanych ) == false )

???

Swoją drogą: https://dsp.krzaq.cc/post/1304/zwi-4-jak-wylosowac-elementy-bez-powtorzen/

>         int liczba = losowanie( podane 3 , ilosc );

Ustawia wartość zmiennej na wynik losowania

       if( czyWylosowana( liczba, wylosowane 2 , wylosowanych ) == false )

jeśli dana liczba nie była wylosowana
wykonuje operacje z następnego wiersza tj. przypisuje wartość zmiennej liczba do tablicy, co powoduje, że dana liczba nie będzie mogła zostać ponownie wylosowana.
Proszę tylko, by ktoś przeanalizował co jest błędem w tym programie.

ps. Napisałem już jak wygląda komunikat z błędem i zaznaczyłem, w których linijkach
i czy ja mam naprawdę wstawiać gdzieś ')' i jeśli tak to gdzie:
A ten artykuł przedstawiony przez użwytkownika kq nie pomógł. Nadal nie wiem co zrobić.

1
user2322 napisał(a):

ps. Napisałem już jak wygląda komunikat z błędem i zaznaczyłem, w których linijkach
i czy ja mam naprawdę wstawiać gdzieś ')' i jeśli tak to gdzie:
A ten artykuł przedstawiony przez użwytkownika kq nie pomógł. Nadal nie wiem co zrobić.

Coś widzę tylko część w treści posta.

user2322 napisał(a):
kq napisał(a):

https://dsp.krzaq.cc/post/445/jak-zadawac-pytania-na-forum/

Nie podajesz ani na której linii, ani nawet treści komunikatu.

        int liczba = losowanie( podane 3 , ilosc );
        if( czyWylosowana( liczba, wylosowane 2 , wylosowanych ) == false )

???

Swoją drogą: https://dsp.krzaq.cc/post/1304/zwi-4-jak-wylosowac-elementy-bez-powtorzen/

>         int liczba = losowanie( podane 3 , ilosc );

Ustawia wartość zmiennej na wynik losowania

       if( czyWylosowana( liczba, wylosowane 2 , wylosowanych ) == false )

jeśli dana liczba nie była wylosowana
wykonuje operacje z następnego wiersza tj. przypisuje wartość zmiennej liczba do tablicy, co powoduje, że dana liczba nie będzie mogła zostać ponownie wylosowana.
Proszę tylko, by ktoś przeanalizował co jest błędem w tym programie.
A ten artykuł przedstawiony przez użwytkownika kq nie pomógł. Nadal nie wiem co zrobić.

@fasadin i ja już wskazaliśmy błąd. wylosowane 2 nie ma żadnego sensu z perspektywy składni języka. Tak samo podane 3

Na blogu przedstawiłem wygodną i w odpowiednich wypadkach wydajną metodę na losowanie bez powtórzeń. Jak checsz to zrobić w sposób super podstawowy to poczekaj na kogoś, komu chce się tak męczyć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1