Witam!
Bazując na wskaźnikach chciałem stworzyć kod, który będzie wyliczał średnią, ważoną jednak kod nie działa. Sprawdzałem i kod niepoprawnie sumuje oceny i nie mam pojęcia czemu. Dodam, że dopiero zacząłem używać wskaźników, więc możliwe, że nie do końca rozumiem zasadę ich działania.
#include <iostream>
using namespace std;
float srwaga(float *marks, int *wag, int ilosc )
{
int sumawag = 0;
float sumaocen = 0;
for(int i=0; i<ilosc;i++)
{
sumaocen+=*marks**wag;
sumawag+=*wag;
marks++;
wag++;
}
return sumaocen/sumawag;
}
int main()
{
int ile;
cout<<"podaj ile ocen: ";
cin>>ile;
float *oceny;
oceny = new float[ile];
int *wagi;
wagi=new int[ile];
for(int i=0;i<ile;i++)
{
cout<< "podaj ocene i wage "<<i+1<<" : ";
cin>>*oceny>>*wagi;
oceny++;
wagi++;
}
cout<<srwaga(oceny,wagi,ile);
delete [] oceny;
delete [] wagi;
return 0;
}
Dodatkowo, czy postawienie obok siebie dwóch gwiazdek tj. od wskaźnika oraz mnożenia nie koliduje ze sobą?
Pozdrawiam i z góry dziękuję za pomoc :)