Cita:
Iniciado por _Lucifer_ No, es porque el C no valida lo que estás escribiendo...si deseas validar correctamente lo que escribe el usuario debes leer una cadena de caracteres, revisar que en la cadena solo existan números y luego convertirla a entero con atoi.
saludos
scanf() sí valida los datos, e informa de si fueron correctos o no para el patrón dado.
Si no recuerdo mal, verificar el valor de retorno scanf() debería bastar.