Witam!
Mam problem z takim zadankiem ze spoja:
https://pl.spoj.pl/problems/PP0604A/
Napisałem taki program:
#include <iostream>
#include <cmath>
using namespace std;
int main()
{
int t;
cin >> t;
while(t--)
{
static int n, suma, srednia, najm;
static int tab[100];
cin >> n;
for(int i=0; i<n; i++)
{
cin >> tab[i]; // wczytuje liczby i zwiekszam zmienna suma, ktora ma miec na koncu wartosc sumy wszystkich elementow tej tablicy
suma+=tab[i];
}
srednia = suma/n; // tworze srednia arytmetyczna n liczb
najm = abs(tab[0] - srednia); //niech na poczatku liczba, ktorej wartosc jest najblizsza sredniej bedzie tab[0]
for(int i=1; i<=n; i++)
{
int as = abs(tab[i] - srednia); // zmienna pomocnicza as przechowuje wartosc bezwzgledna z roznicy wartosci danego elemetny tablicy i sredniej
if(as < najm) // jesli ta roznica jest mniejsza niz dotychczasowa
najm = tab[i]; // to nowa liczba ktorej wartosc jest najblizsza sredniej to tab[i]
}
cout << najm << endl; // wypisuje zmienna
}
return 0;
}
Program prawidłowo się kompiluje, ale źle działa, dla przykładowych danych daje takie wyniki:
0
1
Proszę o pomoc i poprawienie kodu ;_)