Se supone que cuando sumas positivos o negativos es independientemente de si son enteros o decimales, pero sólo consideras los enteros, luego los decimales nunca van a añadirse a las variables sP y sN.
Si no he entendido mal lo que se supone que has de averiguar, el programa falla tanto con números decimales positivos como negativos....
Añado unos cout a tu programa para que entiendas lo que quiero decir:
Código C++:
Ver originalif (v[i] - (int)v[i] == 0)
{
sE += v[i];
if (v[i] > 0)
{
sP += v[i];
cout<<"Solo añado los enteros positivos pero no los decimales"<<endl;
}
else
{
sN += v[i];
cout<<"Solo añado los enteros negativos pero no los decimales"<<endl;
}
}
else
{
sD += v[i];
}