Przekazywanie parametrow funkcji

0

Witam, mam takie pytanie. Jak przekazać z jednej funkcji do drugiej tablice i parametr. Tak, aby z funkcji Pobierz można było użyć parametry do funkcji Warunek i później jakoś na nich działać.

 #include <iostream>

using namespace std;

int Pobierz()
{
    int i=-1;
    int tab[i];

    while(tab[i]!=0)
    {
    i++;
    cout <<"Podaj liczbe " << endl;
    cin >> tab[i];
    cout << endl;

    }
    cout << "Ilosc pobranych liczb to: " << i << endl;

    return i;
    return tab[i];

}

void Warunek(int a, int tab[a])
{
    int suma=0;

    suma = tab[a]*tab[a] + tab[a+1]*tab[a+1];
    cout << suma << endl;
}

int main()
{
    int i;
    int tab[i];

        Pobierz();
        Warunek(i, tab[i]);



        return 0;
}

PS: Dodam, ze funkcja Pobierz działa poprawnie. Po naciśnięciu klawisza 0 przestaje pobierać ciąg. Jedynie co z tym return może być coś nie tak ;)

0

Albo zwracaj strukturę, albo użyj zmiennych globalnych.
Btw, tak nie można: void Warunek(int a, int tab[a])

0

A jak poprawie na takie coś .

void Warunek(int a, int tab[]) 
void Warunek(int i, int tab[]) 

to pojawia się następujący komunikat

invalid conversion from 'int' to 'int*' [-fpermissive]|
initializing argument 2 of 'void Warunek(int, int*)' [-fpermissive]|

0

Wrzuć cały aktualny kod + miejsca (linijki) tych błędów.

0
#include <iostream>

using namespace std;

int Pobierz()
{
    int i=-1;
    int tab[i];

    while(tab[i]!=0)
    {
            i++;
            cout <<"Podaj liczbe " << endl;
            cin >> tab[i];
            cout << endl;

    }
            cout << "Ilosc pobranych liczb to: " << i << endl;

    return i;
    return tab[i];

}

void Warunek(int a, int tab[])
{
    int suma=0;
        suma = tab[a]*tab[a] + tab[a+1]*tab[a+1];
        cout << suma << endl;
}

int main()
{

int i;
int tab[i];
        Pobierz();
        Warunek(i, tab[]);

    return 0;
}

...\main.cpp||In function 'int main()':|
...\main.cpp|38|error: expected primary-expression before ']' token|
== Build finished: 1 errors, 0 warnings (0 minutes, 0 seconds) ===

0

to nie było czasem int[] tab ?

0

Warunek(i, tab[i]); i wychodzą te wczesniejsze komunikaty

0

To co starasz się zrobić nie ma sensu.
Zmienna tab przestaje istnieć tuż po wyjściu z funkcji Pobierz, a wynik który nią zwracasz to jedynie ten jeden int.
Ogólnie polecam od nowa przeczytanie podstaw C++; rozwiązanie problemu już podałem w pierwszym poście w tym temacie.

0

Z pewnością pomoze mi przeczytanie znowu hellow World i co to jest kompilator :P Potrzeba mi konkretów, a nie czytania podstaw. Nie wiem o co Ci chodzi ze zmienną globalną, spróbuje z tymi strukturami coś ruszyć, ale nie są najlepsze, bo i musiało, by być stałe w obu przypadkach. Tak mi się wydaje na chwile obecną ;)

0

Z pewnością pomoze mi przeczytanie znowu hellow World i co to jest kompilator

Ehm, "podstawy C++" sięgają od Hello World! po podstawy programowania obiektowego.
Jeżelibyś je miał przeczytane i zrozumiane, nie popełniłbyś takiego kodu jak ten powyżej...

0

Z tego co próbujesz obliczyć potrzebujesz jedynie poprzedni element a nie całej tablicy.

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