Witam szanowne grono programistów :)
Odrobiłem zadanie domowe z 11 odcinka kursu C++, dla przypomnienia: program ma obliczyć średnią z 5 podanych liczb i wypisać, tą która jest najbliższa średniej. Mam tylko problem z trzecim testem, nie wiem jak zrobić, aby wypisało dwie liczby jeśli są one tak samo bliskie do średniej.
Pozatym co sądzicie o takim kodzie? Jakieś rady, zastrzeżenia?
#include <iostream>
using namespace std;
float liczby[5],suma=0, srednia=0, x[5], najmniejsza;
int main()
{
for(int i=0; i<5; i++)
{
cout<<"Podaj "<<i+1<<" liczbe: ";
cin>>liczby[i];
suma+=liczby[i];
}
srednia=suma/5;
cout<<endl<<"Srednia wynosi: "<<srednia;
for (int i=0; i<5; i++)
{
x[i]=(1-(liczby[i]/srednia));//liczba najblizsza sredniej to liczba, którą jak podzielimy przez srednia bedzie najblizsza 1, a zastosowane odejmowanie 1-wynik i uzycie wartosci bezwzglednej jest po to aby pozniej znalezc najmniejsza z tych liczbe
if (x[i]<0) x[i]=-x[i];//stworzenie wartosci bezwzglednej
}
najmniejsza=x[0];
for (int i=0; i<5; i++)
{
if (x[i+1] < najmniejsza) najmniejsza=x[i+1]; //znalezienie najmniejszej liczby wsrod wynikow dzielenia (czyli takiej ktorej wynik z dzielenia przez srednia bedzie najblizszy 1, czyli najblizszej sredniej)
}
if ( x[0]==najmniejsza )cout<<endl<<"Liczba nablizsza sredniej to: "<<liczby[0];
else if ( x[1]==najmniejsza )cout<<endl<<"Liczba nablizsza sredniej to: "<<liczby[1];
else if ( x[2]==najmniejsza )cout<<endl<<"Liczba nablizsza sredniej to: "<<liczby[2];
else if ( x[3]==najmniejsza )cout<<endl<<"Liczba nablizsza sredniej to: "<<liczby[3];
else if ( x[4]==najmniejsza )cout<<endl<<"Liczba nablizsza sredniej to: "<<liczby[4];
return 0;
}