Witam, oto mój kod do zadania z tytułu zadania z serwisu SPOJ:
#include <iostream>
int main()
{
short t, n, number[n], closest;
float sum=0, comparison, difference;
std::cin>>t;
for(int i=0;i<t;i++)
{
std::cin>>n;
for(int i=0;i<n;i++)
{
std::cin>>number[i];
sum+=number[i];
}
closest=number[0];
if (sum/n-number[0]<0)
difference=((sum/n-number[0])-2*(sum/n-number[0]));
else if (sum/n-number[0]>0)
difference=sum/n-number[0];
for(int i=1;i<n;i++)
{
comparison=(sum/n-number[i]);
if (comparison<0)
comparison=((sum/n-number[i])-2*(sum/n-number[i]));
if (comparison<difference)
{
difference=comparison;
closest=number[i];
}
}
std::cout<<closest<<std::endl;
sum=0;
}
return 0;
}
Oto treść zadania: http://pl.spoj.com/problems/PP0604A/
Tak jak w tytule postu: Wywala mi błąd SIGSEGV, jednak nie wiem z jakiego dokładnie powodu. Poza tym wydaje mi się, że kod działa prawidłowo, sprawdzałem dla różnych testów już, ale nie mam tej 100% pewności dopóki SPOJ mi tego nie zaakceptuje. Proszę o pomoc i powiedzenie dlaczego taki błąd występuje
Pozdrawiam!