Witam, są to moje początki z programowaniem, a zadanie domowe z filmiku 11 jest pierwsze, jakie rozwiązuje więc proszę o wyrozumiałość :)
W zadaniu chodzi o to aby podać 5 liczb, a program wskazuje która z nich jest najbliższa wartości średniej z wcześniej podanych 5 liczb.
Mój zamysł jest taki, że od średniej odejmuję każdą z podanych na początku liczb. I najmniejsza wartość bezwzględna z tego odejmowania daje mi liczbę najbliżej średniej.
oznaczenia mam dosyć chaotyczne, więc dodam legendę
a,b,c,d,e -> liczby podawane na początku
s- średnia
x1, x2, x3, x4, x5 - wyniki działań "średnia-liczba początkowa"
Wydawało mi się, ze funkcję if zrobiłam na wzór z filmiku 11, a zamiast jednego wyrażenia wyświetlają mi się wszystkie (jakoby wszystkie podane liczny były najbliższe średniej)
Czy mam błąd w fukncji ? Czy może mój tok myślenia jest zły ... Za wszelkie podpowiedzi i uwagi będę wdzięczna.
#include <iostream>
#include <cmath>
using namespace std;
float a,b,c,d,e;
int main()
{
cout << "Podaj piec liczb oddzielonych spacja:" << endl;
cin>>a>>b>>c>>d>>e;
float s;
s=(a+b+c+d+e)/5;
cout<<"srednia wynosi: "<<s<<endl;
if (s<0)
s*(-1);
float x1, x2, x3, x4, x5;
x1=s-a;
x2=s-b;
x3=s-c;
x4=s-d;
x5=s-e;
int m=fabs(x1); cout<< "Najblizsza sredniej to liczba "<<a<<endl;
if (fabs(x2)<m) m=x2; {cout<< "Najblizsza sredniej to liczba "<<b<<endl;}
if (fabs(x3)<m) m=x3; {cout<< "Najblizsza sredniej to liczba "<<c<<endl;}
if (fabs(x4)<m) m=x4; {cout<< "Najblizsza sredniej to liczba "<<d<<endl;}
if (fabs(x5)<m) m=x5; {cout<< "Najblizsza sredniej to liczba "<<e<<endl;}
return 0;
}