Witam, program tak jak w tytule pobiera 5 liczb typu float, liczy średnią i podaje tą, która jest najbliżej średniej ze wszystkich podanych. Program działa zazwyczaj poprawnie, min. dla przykładów podanych w 11 odcinku podstaw C++. Jednak dla {21.38, 7.9, 4.01, 20.01, 1.01} podaje 1.01 lub {1, 2, 3, 4, 5} podaje 4. Proszę o wskazanie gdzie tkwi problem.
Z góry dziękuje za pomoc:)
#include <iostream>
#include <math.h>
#include <cstdlib>
#include <cstdio>
#include <cmath>
using namespace std;
float tablica[5], suma, srednia, a, b, c, d, e, m ;
int main()
{
cout<<"Podaj 5 liczb"<<endl ;
for(int i=0 ; i<5; i++)
{
cin>>tablica[i] ;
suma += tablica[i] ;
}
srednia=suma/5 ;
cout<<"Srednia: "<<srednia<< endl ;
a = abs(srednia-tablica[0]) ;
b = abs(srednia-tablica[1]) ;
c = abs(srednia-tablica[2]) ;
d = abs(srednia-tablica[3]) ;
e = abs(srednia-tablica[4]) ;
m=tablica[0] ;
if(a>b) m=tablica[1] ;
if(a>c) m=tablica[2] ;
if(a>d) m=tablica[3] ;
if(a>e) m=tablica[4] ;
cout<<"Najblizej:"<<m<<endl;
return 0;
}