Witam
pisałem funkcję, która pobiera tablicę o nieparzystej liczbie elementów typu int. Program ma zwrócić "mean", "median", lub "same" w zależności od tego czy mediana czy średnia jest większa, lub czy są takie same. Kod poniżej
int compare(const void *a, const void *b)
{
return *(int*)a-*(int*)b;
}
const char* meanVsMedian(int *numbers, size_t numbersSize) {
int median=0;
double mean=0;
qsort(numbers,numbersSize,sizeof(int),compare);
for(int i=0;i<numbersSize;i++)
mean+=numbers[i];
mean=mean/numbersSize;
median=numbers[numbersSize/2];
return mean>median?"mean":median>mean?"median":"same";
}
Funkcja przechodzi wszystkie testy, ale wcześniej próbowałem zadeklarować mean jako typ int i wyrzucało mi błędy. Myślałem, że dzielenie int przez int zaokrągli wynik w dół. Może ktoś wyjaśnić, dlaczego mean musi być zadeklarowane jako double?