Ho questo esercizio che ho programmato ma dà risultati sbagliati. Ecco il testo:  
 
Scrivere un programma che chiede all'utente di inserire una sequenza di
interi. Il programma continua a chiedere all'utente di inserire valori fintantochè i valori inseriti soddisfano
almeno una delle seguenti condizioni:
 
è negativo e divisibile per 2;
è positivo e divisibile per 3;
Al termine il programma stampa la somma di tutti i valori inseriti escluso quello ha violato le condizioni.
Risolvere questo esercizio senza usare array.
Ecco la mia soluzione:
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{
    int n=0;
    int somma=0;
    cout<<"Inserisci una sequenza di numeri\n";
    do
    {
        cin>> n;
        if((n<0 && n%2==0)||(n>=0 && n%3==0))
        somma +=n;
    }while((n<0 && n%2==0)||(n>0 && n%3==0));
    cout<<somma;
    system("pause");
    return 0;
}
L'errore che mi dà: io inserisco valori e lui non mi ferma mai, quando premo invio per fermare stampa zero. Dove ho sbagliato? Potete aiutarmi per favore? Grazie in anticipo.