SREDNIA ARYTMETYCZNA Spoj

0

Witam, nie rozumiem zadania, Link//pl.spoj.com/problems/PP0604A/
W trzecim przykładzie, liczby: 4 0 3 2 4, więc średnia: 2.6, więc pierwsza 'najbliższa' to chyba powinna być 3, a jest 2. Proszę o pomoc ;)

Mój kod:

#include <iostream>
#include <cmath>
using namespace std;

int main()
{
	int t;
	cin>>t;
	for (int j=0; j<t; j++)
	{

		int a;
		cin>>a;
		int *b;
		b = new int [a];
		float suma=0;
		int liczba;
		for( int i=0; i<a; i++)
		{
			cin>>b[i];
			suma+=b[i];
		}
		suma = suma/a;
		//cout<<suma<<endl;
		liczba=b[0];
		float zmienna=fabs(suma-b[0]);
		for (int i =0; i<a; i++)
		{
			if (zmienna>fabs(suma-b[i]))
			{
				if(1>fabs(b[i]-suma))
				{
					liczba = b[i];
					zmienna=fabs(suma-b[i]);
					break;
				}

			}
		}
		cout<<liczba<<endl;
		delete [] b;
	}
	system("pause");
	return 0;
}
 
5

Pierwsza liczba to liczba elementów listy. Więc 4 0 3 2 44 elementy: 0 3 2 4 ⟶ średnia 2.25

Przy okazji: używaj std::vector(lub smart pointerów, ale tutaj vector) zamiast new/delete.

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