Skocz do zawartości

przeniesienie wartości tablicy do funkcji c++


Idź do rozwiązania Problem ogarnięty przez Luki91,

Recommended Posts

Witam, mam problem z programem który próbuje napisać, ma on pobrać z głównego programu tablice do funkcji i tu sie zaczynają schody, poniewaz do funkcji pobiera liczby z kosmosu . Próbowałem na dwa sposoby i w obu przypadkach taki sam efekt

sp1:
 

#include<iostream>
#include<math.h>

using namespace std;

void srednia(double *c);

int main()
{
    double T[5];

//----- Podanie cen ---------
    for(int a=1;a<=5;a++)
    {
        cout<<"Podaj cene "<<a<<" rzeczy \n";
        cin>>T[a];
    }
    double *tab= T;

for(int a=1;a<=5;a++)
    {
        cout<<T[a]<<endl;
    }
    srednia(tab);

    return 0;
}

void srednia(double *c)
{
    int a;
    double suma=0,sr=0,t[5];
    for(a=1;a<=5;a++)
    {
        suma+=t[a];
    }
    sr=suma/5.0;
    cout<<suma<<endl;
    cout<<"sred "<<sr<<endl;
    cout<<"ceny poniżej sredniej \n";
    for(a=1;a<=5;a++)
    {
        if(t[a]<sr)
            cout<<"na pozycji "<<a<<" cena = "<<t[a]<<endl;
    }

}

sp2:

#include<iostream>
#include<math.h>

using namespace std;

void srednia(double c[5]);

int main()
{
    double T[5];

//----- Podanie cen ---------
    for(int a=1;a<=5;a++)
    {
        cout<<"Podaj cene "<<a<<" rzeczy \n";
        cin>>T[a];
    }

for(int a=1;a<=5;a++)
    {
        cout<<T[a]<<endl;
    }
    srednia(T);

    return 0;
}

void srednia(double c[5])
{
    int a;
    double suma=0,sr=0,t[5];
    for(a=1;a<=5;a++)
    {
        suma+=t[a];
    }
    sr=suma/5.0;
    cout<<suma<<endl;
    cout<<"sred "<<sr<<endl;
    cout<<"ceny poniżej sredniej \n";
    for(a=1;a<=5;a++)
    {
        if(t[a]<sr)
            cout<<"na pozycji "<<a<<" cena = "<<t[a]<<endl;
    }

}

Będe wdzięczny jak ktoś mi powie gdzie robie błędy 

Link to post
Share on other sites
  • Rozwiązanie

Twój program wygląda tak, że do funkcji srednia(double *c) przekazujesz tablicę, a następnie tworzysz zupełnie nową tablicę t[5] to jej elementy sumujesz. A tablica t nie jest zainicjalizowana żadnymi wartościami i w środku ma to co akurat było w danym miejscu pamięci (czyli te "liczby z kosmosu").

Skoro funkcja przyjmuje argument c, będący tablicą, to sumuj jej elementy a nie jakieś zupełnie nowe nie wiadomo skąd :)

Edytowane przez Luki91
  • Popieram 1
Link to post
Share on other sites
Gość
This topic is now closed to further replies.
  • Ostatnio przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników przeglądających tę stronę.

×
×
  • Dodaj nową pozycję...