Wyrzuca Ci błąd, ponieważ niepoprawnie wczytujesz dane.
Tu przykład wczytania poprawnie danych przy takim zadaniu:
#include<iostream>
using namespace std;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(NULL);
int a;
while(cin >> a){
if(a>0)
cout<< "dodatnia\n";
if(a==0)
cout << "zero\n";
if(a<0)
cout << "ujemna\n";
}
return 0;
}
Działa to tak, ponieważ while(cin>>a){} będzie się wykonywało dopóki program będzie coś dostawał na wejście, a w tym wypadku do czasu wczytania wszystkich danych do programu.
Do zadań na SPOJ-u polecam również 2 polecenia (jeśli toś używa <iostream>):
ios_base::sync_with_stdio(0);
cin.tie(NULL);
Pierwsze wyłącza synchronizację printf-ów i cout-ów i sprawia, że wszystko będzie wypisane na wyjście po zakończeniu działania programu, zaś drugie (chyba - nie mam pewności) ustawia pozycjonowanie cin-ów na początek bufora. W praktyce obydwa polecenia przyspieszają działanie cin-ów i cout-ów.