Ciao,

forse il problema è dovuto a questo: tu scrivi 2 numeri e premi invio. La scanf legge i due numeri ma nello standard input resta ancora l'invio ('\n') che hai dato.
Dopo la scanf aggiungi "fflush(stdin)" così da ripulire il buffer di input.

p.s. nel while chredo che tu voglia fare un OR logico ( || ) non un OR bit a bit ( | ) come hai scritto