Zadanie Mirosława Zelenta - wyznacznie liczby najbliższej średniej

0

Witam forum bardzo serdecznie, mam nadzieję, że pomożecie.
Mam taki problem, bo napisałem kod, postarałem się użyć pętli, ale dzieją się dziwne rzeczy, oto przykład:

" Podaj dla ilu liczb: 5
4 8 10 -5 3
Srednia tych liczb wynosi: 4
Liczba najblizej sredniej: 3 "

Wygląda na to, że to czwórka z podanych jest najbliższa średniej, a nie trójka, o co tutaj chodzi? Kminię i kminię i wykminić nie umiem. Kod:

#include <iostream>
#include <cmath>

using namespace std;

int main()
{
    int ile;
    cout<<"Podaj dla ilu liczb: ";cin>>ile;
    float ar[ile],bliska=0,suma=0,sr=0;

    for(int i=0; i<ile ;i++)
    {
        cin>>ar[i];
        suma+=ar[i];
    }sr=suma/ile;
    cout<<"Srednia tych liczb wynosi: "<<sr<<endl;

    bliska=ar[0];

    for(int j=0;j<ile;j++)
    {
        {
        if (abs(sr-ar[j+1])>abs(sr-ar[j+2]))
            bliska=ar[j+2];
        }
    }

    cout<<"Liczba najblizej sredniej: "<<bliska<<endl;

    return 0;
}

1

Musiałbyś zrobić coś takiego:

	roznicaDlaNajblizszej = abs(ar[0] - sr);
	int index = 0;
 
    for(int j=1;j<ile;j++)
    {
		float roznica = abs(ar[j] - sr);
		if(roznicaDlaNajblizszej >= roznica)
        {
			roznicaDlaNajblizszej = roznica;
			index = j;
		}        
    }
	
	cout<<"Liczba najblizej sredniej: "<<ar[index]<<endl;
0

Chyba bym na to nie wpadł, no cóż, głowa do góry, dzięki wielkie

1 użytkowników online, w tym zalogowanych: 0, gości: 1