Problem polega na tym, że funkcja ktora_najblizej zwraca mi zawsze wartość zmiennej liczby[0].
Ktoś mi wytłumaczy dlaczego się tak dzieje ?
#include <iostream>
#include <windows.h>
#include <cstdlib>
#include <time.h>
#include <math.h>
#include <cmath>
using namespace std;
float wyznaczsrednia(float liczby[], int ile_liczb)
{
float srednia;
float suma=0;
for(int i=0; i<5; i++)
{
suma+=liczby[i];
}
srednia=suma/ile_liczb;
return srednia;
}
float ktora_najblizej(float liczby[], float srednia)
{
float xliczby[5];
xliczby[0]=fabs(srednia-liczby[0]);
xliczby[1]=fabs(srednia-liczby[1]);
xliczby[2]=fabs(srednia-liczby[2]);
xliczby[3]=fabs(srednia-liczby[3]);
xliczby[4]=fabs(srednia-liczby[4]);
float nn;
nn=liczby[0];
if(xliczby[1]<=xliczby[0])
{
liczby[1]=nn;
}
if(xliczby[2]<=xliczby[1])
{
liczby[2]=nn;
}
if(xliczby[3]<=xliczby[2])
{
liczby[3]=nn;
}
if(xliczby[4]<=xliczby[3])
{
liczby[4]=nn;
}
return nn;
}
int main()
{
float liczba[5];
for(int i=0; i<5; i++)
{
cin >> liczba[i];
}
float srednia = wyznaczsrednia(liczba,5);
cout<<"Srednia to "<<srednia;
cout<<"Liczba najblizsza sredniej to "<<ktora_najblizej(liczba, srednia);
return 0;
}