Cześć w programie użytkownik ma podać 5 liczb. Następnie program ma obliczyć średnią z podanych liczb i ,,powiedzieć", która z podanych liczb jest najbliżej średniej. No i właśnie jest spory problem, z którym nie mogę sobie poradzić, za długo już siedzę nad tym kodem ;/ Otóż dla licz 1.5 3.14 7.5 1.25 3.42 kod działa jak się należy(podaje liczbę najbliżej średniej), ale dla liczb -55 -44 -33 11 22 program działa, ale nie podaje właściwej liczby. Proszę o pomoc, najlepiej jak zmodyfikować istniejący już kod.
#include <iostream>
#include <cstdlib>
using namespace std;
int main()
{
float liczba[5];
float m, suma = 0;
cout << "Podaj 5 liczb zmiennoprzecinkowych" << endl;
for(int i = 0; i < 5; i++)
{
cin >> liczba[i];
suma = suma + liczba[i];
}
system("cls");
cout << "Wypisane przez Ciebie liczby to: ";
for(int i = 0; i < 5; i++)
{
cout << liczba[i] << " ";
}
cout << endl << "Suma = " << suma << endl;
m = suma/5;
cout << "Srednia = " << m << endl;
//3.42 = srednia = m
// x = roznica
float lib[5];
for(int i = 0; i < 5; i++)
{
if(liczba[i] < m)
{
lib[i] = m - liczba[i];
liczba[i];
}
else if(liczba[i] >= m)
{
lib[i] = liczba[i] - m;
liczba[i];
}
}
for(int i = 0; i < 5; i++)
{
cout << lib[i] << endl;
}
float por, co;
por = lib[0]; //roznica miedzy wczytana liczba, a srednia
co = liczba[0]; // liczba bedaca najblizej sredniej
for( int i = 0; i < 5; i++)
{
if(lib[i+1] < por)
{
por = lib[i+1];
co = liczba[i+1];
}
}
cout << endl << por << " " << co;
return 0;
}