Cześć! Na początku chcę napisać, że czuję się bardzo nieswojo wołając o pomoc.
Uff, mam to z głowy, więc teraz przejdę do rzeczy.
W zadaniu należy podać 5 liczb, wyliczyć z nich średnią, a następnie wypisać liczbę lub liczby najbliższe średniej.
Można zrobić to wyliczając wartość bezwzględną różnicy liczby i średniej, ale ja chciałem zrobić to inaczej i utknąłem. Otóż wymyśliłem sobie, że utworzę tablicę z podanymi liczbami, następnie wyliczę średnią, a później zrobię pętlę, która odseparuje mi liczby:
= średniej, jeśli takie istnieją, > średniej i < średniej. Potem wybiorę najmniejszą liczbę z liczb powyżej średniej i największą z liczb poniżej średniej. Następnie sprawdzę ich "odległość" od średniej i wypiszę tę o mniejszej różnicy od średniej, lub obie.
Niestety wypisywanie najmniejszej spośród większych od średniej i największej spośród mniejszych przerosło moje zdolności. To co zrobiłem do tego momentu:
#include <iostream>
using namespace std;
float s, maks, below, over;
float srednia (float *num, int x)
{
float suma=0;
for (int i=0; i<x; i++)
{
suma+=*num;
*num++;
}
return suma/x;
}
int main()
{
float liczby[5];
cout << "Podaj 5 liczb oddzielonych spacja" << endl;
for (int i=0; i<5; i++)
{
cin >> liczby[i];
}
cout << "Srednia wynosi: " << srednia (liczby, 5) <<endl;
maks=liczby[0];
for (int i=0; i<5; i++)
{
if (liczby[i] == srednia(liczby, 5))
{
maks = liczby[i];
cout << "Liczba najblizsza sredniej: " << maks << endl;
}
if (liczby[i] < srednia(liczby, 5))
{
cout << liczby[i] << " "; //Liczby poniżej średniej
below = srednia(liczby, 5);
if (liczby[i]<below) below = liczby[i];
}
if (liczby[i] > srednia(liczby, 5))
{
cout << liczby[i] << "o ";//liczby powyżej średniej
over = srednia(liczby, 5);
if (over<liczby[i]) over = liczby[i];
}
}
if (srednia(liczby, 5) != maks)
{//dalej są niedokończone spełnione warunki obliczania wartości bezwzględnej, ale póki co krzaczy się już powyżej
Domyślam się, że wewnątrz warunków dla liczb x> i x< od średniej powinna być dodatkowa pętla, która zapisze te liczby w zmiennej, a następnie znajdę najmniejsza i największą wartość?
Jest mi okropnie głupio, ale utknąłem tu od kilku dni i bardzo prosze o jakieś wskazówki gdzie powinienem szukać rozwiązania.
Z góry dziękuję za poświęcony nowicjuszowi czas ;)