Powinienem zignorować za “karę” nie przestrzegania reguł! 
Zmienną suma należy przed każdym użyciem wyzerować. To, że jest ona globalna, [nie trzeba więc jej zerować] powoduje tylko początkowe, jednorazowe jej wyzerowanie. Najlepiej zrobić inicjalizację i deklarację w środku pętli i starać się nie używać niepotrzebnie zmiennych globalnych. {następny wpływ yutubowego wieszcza programowania?}
...
for (..) {
double suma = 0;
...
}
I ten błąd powodował SIGABRT, ale oczywiście tablica jest tu zbędna.