Io con il borland ottengo risultati diversi.
Ma quell'if per come è scritto non serve a nulla. L'unica condizione che può verificarsi è (m<=0), le altre sono sempre false.
Per quanto riguarda il cin è normale che vada in errore quando si sbagli a inserire il dato.
Per risolvere puoi mettere queste due righe dopo l'if.
cin.clear();
cin.ignore(INT_MAX,'\n');
Per inciso, sbagliando volutamente inserimento sia la versione con un cout sia la versione con due cout non funzionano.

Rispondi quotando