Hej wszystkim, potrzebuje pomocy przy rozwiązywaniu zadania "PP0604A - Średnia arytmetyczna". Mam taki oto kod:
#include<math.h>
#include<iostream>
using namespace std;
int iloscTestow, ileLiczb, suma=0, odp;
float srednia, m;
int wyszukiwanie(int ile)
{
int *tablica;
tablica = new int [ile];
for(int i=0; i<ile; i++)
{
cin>>tablica[i];
suma+=tablica[i];
}
srednia=suma/ile;//dziwny wynik
m=fabs(srednia-tablica[0]);
odp=tablica[0];
cout<<"srednia: "<<srednia;
for(int i=1; i<ile; i++)
{
if(m>fabs(srednia-tablica[i]))
{
m=fabs(srednia-tablica[i]);
odp=tablica[i];
}
}
delete [] tablica;
return odp;
}
int main()
{
cin>>iloscTestow;
for(int i=0; i<iloscTestow; i++)
{
cin>>ileLiczb;
cout<<wyszukiwanie(ileLiczb)<<endl;
}
return 0;
}
Problem w tym, że z jakiegoś powodu średnia arytmetyczna wychodzi większa od sumy podanych liczb i tak na przykład dla liczb 1 (ilość cykli) 5 (ilość liczb w cyklu) 1, 2, 3, 4, 5. program liczy sumę 15, a średnia wychodzi 33. Co dziwniejsze zdarzają się sytuacje, gdzie i suma wychodzi źle np dla 5 (ilość cykli) 4, 4, 4, 4, 5 wychodzi 21, zamiast 20. Dlaczego?