Cześć, jestem poczatkujący, zdecydowałem się założyc konto i Od razu kieruje do was prośbe o pomoc. Mając zadanie w którym program po podaniu 5 liczb przez uzytkownika ma podac liczbe zblizona najblizej do sredniej z tych 5 liczb. Pierwsze wrazenie jest takie ze program, który stworzyłem działa ale jeśli tylko 2 liczby beda w takiej samej odleglosci od siebie powinny byc wyswietlone dwie a jednak tak sie nie dzieje(np liczby: 6.5; 3.5; 0; 15 ;0; tutaj powinny wyswietlic sie liczby 6.5 i 3.5) . Kompletnie nie wiem jak na to zaradzic, może ktos ma jakis pomysl?
ponizej program jaki stworzyłem
#include <iostream>
#include <windows.h>
#include <math.h>
using namespace std;
float srednia(float podaneCyfry[], int rozmiar)
{
float suma=0;
float srednia;
for (int i=0; i<rozmiar; i++)
{
suma+=podaneCyfry[i];
}
srednia = suma/rozmiar;
return srednia;
}
float najblizszaLiczba( float podaneCyfry[], float srednia, int rozmiar)
{
float najblizszaLiczba;
float roznica=fabs(podaneCyfry[0]-srednia);
for (int i=0; i<rozmiar; i++)
{
if(fabs(podaneCyfry[i]-srednia)<=roznica) najblizszaLiczba=podaneCyfry[i], roznica=fabs(podaneCyfry[i]-srednia);
}
return najblizszaLiczba;
}
int main()
{
float podaneCyfry[5];
for (int i=0; i<5; i++)
{
system("cls");
cout << "podaj "<< i+1 <<" liczbe"<< endl;
cin >> podaneCyfry[i];
}
cout << "Srednia podanych liczb to: "<< srednia(podaneCyfry, 5)<<endl;
cout << "Najblizej sredniej z podanych liczb jest liczba: " << najblizszaLiczba(podaneCyfry, srednia(podaneCyfry,5),5);
}