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

Niezrozumiały error przy probie kompilacji podczas zadania domowego z tematu 21.

Ostatnio zmodyfikowano 2019-03-03 23:02
Autor Wiadomość
Szynek
Temat założony przez niniejszego użytkownika
Niezrozumiały error przy probie kompilacji podczas zadania domowego z tematu 21.
» 2019-03-03 02:10:20
Robiłem zadanie domowe z lekcji 21. Probowałem dojść dlaczego kompilator pokazuje ten błąd, ale mimo moich starań nie mogę zrozumieć (komunikat dodany jako komentarz przy linijce, w której występuje). Myślę, że poradzę sobie z naprawieniem błędów w działaniu programu, jeżeli takie są, ale za pomoc w tej kwestii też byłbym wdzięczny.

C/C++
#include <iostream>
#include <cstdlib>
#include <ctime>

int wczytywanie( int a, int b, int c )
{
    std::cout << "podaj a ";
    std::cin >> a;
    std::cout << "podaj b ";
    std::cin >> b;
    std::cout << "podaj c ";,
    std::cin >> c;
    return 0;
}
int losowanie( int licznik, int wylosowana )
{
   
    int a;
    int b;
    int c;
   
    wczytywanie( a, b, c );
    srand( time( 0 ) );
    wylosowana =( rand() % 3 ) + 1;
    if( wylosowana == 1 )
         return a;
   
    if( wylosowana == 2 )
         return b;
   
    if( wylosowana == 3 )
         return c;
   
}

bool czyBylaWylosowana( 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 main()
{
    int wylosowana;
    int ilosc;
   
    losowanie( ilosc, wylosowana );
   
    int wylosowane[ 2 ];
    int wylosowanych = 0;
    int liczba;
   
    if( czyBylaWylosowana( wylosowane, liczba[], wylosowanych ) == false ) // expected primary-expression before ']' token
    do
    {
        std::cout << liczba << std::endl;
        wylosowanych++;
    } while( wylosowanych < 2 );
   
}
P-174105
nanoant20
» 2019-03-03 09:26:49
C/C++
std::cout << "podaj c ";,
zbyteczny przecinek

C/C++
int losowanie( int licznik, int wylosowana )
prawdopodobnie masz tam warning 'Przykład niebezpiecznej funkcji'
http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Funkcje-a-slowo-kluczowe-return/339

C/C++
int wylosowane[ 2 ];
int wylosowanych = 0;
int liczba;

if( czyBylaWylosowana( wylosowane, liczba[], wylosowanych ) == false ) // expected primary-expression before ']' token
oczekuje tablicy, której nie przekazujesz

przyjrzyj się dokładnie jakie masz zmienne i jakie argumenty przekazujesz do funkcji
u ciebie "int liczba" jest zmienną całkowitą typu int a nie tablicą,


@EDIT
w treści zadania jest
"Napisz program, który wczyta 3 liczby podane przez użytkownika do tablicy"
C/C++
int wczytywanie( int a, int b, int c )
zamiast tych zmiennych powinieneś przekazać tablicę
i w ciele funkcji zastosować pętelkę i wczytywać dane
podane przez użytkownika do tablicy, tak jak jest to w kursie
http://cpp0x.pl/kursy/Kurs-C++/Poziom-2/Przekazywanie-tablic-jednowymiarowych-do-funkcji/324


przeanalizuj cały kod
rozłóż na czynniki pierwsze (na funkcje);
sprawdź czy funkcja zachowuje się tak jak tego oczekujesz;
i dopiero poskładaj w całość

P-174106
YooSy
» 2019-03-03 13:03:22

Niezrozumiały error przy probie kompilacji

Jak brzmi ten błąd. Na przyszłość, gdy mówisz o błędzie, podaj jego treść.
P-174107
pekfos
» 2019-03-03 23:02:57
Niezrozumiały error przy probie kompilacji
C/C++
if( czyBylaWylosowana( wylosowane, liczba[], wylosowanych ) == false ) // expected primary-expression before ']' token
Bez przesady, że zaraz niezrozumiały. Nie musisz wiedzieć, co znaczy "primary-expression", ważne że oczekiwano czegoś przed znakiem ], a więc nie możesz w tym kontekście napisać pustych nawiasów kwadratowych. Więc zapewne nie tak powinno wyglądać przekazanie tablicy do funkcji.
P-174116
« 1 »
  Strona 1 z 1