Program ma za zadanie znaleźć liczbę najbliższą średniej z 5-ciu podanych i podaj średnią oraz tą liczbę. Po podaniu liczb 6.5 3.5 0 15 0 jako wynik podaje 0, a powinien podać 3.5 lub 6.5. Wielokrotnie analizowałem kod i nie mogę znaleźć błędu. Byłbym wdzięczny gdyby ktoś pomógł mi go odnaleźć. Wadą tego programu jest też to, że gdyby warunek spełniały dwie liczby to zostanie wypisana tylko jedna z nich, tego problemu również nie mogę rozwiązać.
#include <iostream>
using namespace std;
float a,b,c,d,e,m1,m2,m3,m4,m5,m,s;
int main()
{
cout << "Podaj piec liczb oddzielonych spacja" <<endl;
cin>>a>>b>>c>>d>>e;
s=(a+b+c+d+e)/5;
m1=a-s;
if(m1<0)m1=-m1;
m2=b-s;
if(m2<0)m2=-m2;
m3=c-s;
if(m3<m3)m3=-m3;
m4=d-s;
if(m4<0)m4=-m4;
m5=e-s;
if(m5<0)m5=-m5;
m=m1;
if(m2<m)m=m2;
if(m3<m)m=m3;
if(m4<m)m=m4;
if(m5<m)m=m5;
if(m==m1)m=a;
if(m==m2)m=b;
if(m==m3)m=c;
if(m==m4)m=d;
if(m==m5)m=e;
cout<<"Srednia wynosi: "<<s<<" , a liczba jej najblizsza: "<<m<<endl;
return 0;
}