penso sia perche fai il controllo del While prima della Scanf per qui non ha ancora un valore
prova a fare un Do-While.
ciao.