Na wstępie dodam, że ten wątek był już omawiany na forum, ale ja zrobiłem go na swój sposób i potrzebuję kilku informacji. Od początku, program działa, testowany na przykładach Pana Mirosława z kursu C++, ale nie do końca. Jeśli podamy liczby 6.5, 3.5, 0, 15 , 0, gdzie średnia wyniesie 5 to program zwróci tylko 6.5. Proszę o porady, jak sobie z tym poradzić. Kod poniżej:
#include <iostream>
int main()
{
float srednia;
float suma;
float liczby[5];
float naj;
int licznik = 1;
for(int i=0; i<5; i++)
{
std::cout << "Podaj " << licznik << " liczbe: ";
std::cin >> liczby[i];
licznik++;
}
for(int i=0; i<5; i++)
{
suma += liczby[i];
}
srednia = suma/5;
std::cout << "Srednia wynosi: " << srednia << std::endl;
float odl0,odl1,odl2,odl3,odl4;
if(liczby[0] >= srednia)
odl0 = liczby[0] - srednia;
else odl0 = srednia - liczby[0];
if(liczby[1] >= srednia)
odl1 = liczby[1] - srednia;
else odl1 = srednia - liczby[1];
if(liczby[2] >= srednia)
odl2 = liczby[2] - srednia;
else odl2 = srednia - liczby[2];
if(liczby[3] >= srednia)
odl3 = liczby[3] - srednia;
else odl3 = srednia - liczby[3];
if(liczby[4] >= srednia)
odl4 = liczby[4] - srednia;
else odl4 = srednia - liczby[4];
float ok = odl0;
naj = liczby[0];
if(odl1 < ok)
{
naj = liczby[1];
ok = odl1;
}
if(odl2 < ok)
{
naj = liczby[2];
ok = odl2;
}
if(odl3 < ok)
{
naj = liczby[3];
ok = odl3;
}
if(odl4 < ok)
{
naj = liczby[4];
ok = odl4;
}
std::cout << "Najblizsza liczba do sredniej to " << naj;
return 0;
}