Witam, mam pewien problem dotyczacy funkcji na modalną. Nie moglem sobie sam poradzic z napisaniem takiej funkcji a wiec skorzystalem z informacji na tej stronie: http://mwzsw.cal.pl/lekcje_i/lider.html z kodu na lidera zbioru. Dopasowałem kod do własnych zmiennych etc i niestety nie dziala tak jak nalezy. Otóż powinno zwrocic z tablicy modalna a niestety zwraca "-1"
Tak wyglada moj kod:
double modalna(int ilosc, double *tablica)
{
double moda=tablica[0];
int licznik=1;
for (int i=0;i<ilosc;i++)
{
if (licznik==0)
{
moda=tablica[i];
licznik=1;
}
else
if (moda==tablica[i]) licznik++;
else licznik--;
}
int ile=0;
if (licznik>0)
{
for (int i=0;i<ilosc;i++)
{
if (tablica[i]==moda) ile++;
}
}
if (ile>(ilosc/2)) return moda;
else return -1;
}
Gdzie ilosc-rozmiar tablicy jednowymiarowej, *tablica - wskaznik do tablicy jednowymiarowej zawartej w klasie.
Niestety nie potrafie dojsc do tego dlaczego funkcja nie dziala.
Czy bylby ktos w stanie pomoc?
double Tb[]={7,333,333,3,333,4,333}; cout<<modalna(6,Tb)<<endl;