Mira, si pruebas a añadir una linea para que en cada iteración del bucle te muestre en pantalla que valor tiene la variable i, la que incrementa el bucle for, percibirás una cosa curiosa:
Este es el resultado en pantalla, fíjate que cada vez que entramos un carácter, la i se incrementa dos veces.
Es decir, hay ciclos del bucle que transcurren sin que hayamos podido entrar una letra, los señalo con comentarios a continuación, ¿por qué?
Esto se debe a que cuando sí nos deja entrar el carácter, para entrarlo, tenemos que teclear carácter y a continuación pulsar tecla enter, que genera su propio carácter (es un carácter especial, pero carácter al fin y al cabo).
La variable char recoge el primer carácter que hemos pulsado, pero no coge la pulsación de la tecla enter, porque no cabe, solo admite un único carácter.
Este carácter de la tecla enter se queda en el stream de entrada de datos, entonces, en la siguiente iteración, cuando nos va a pedir ingresar otro carácter, scanf() se encuentra la pulsación de enter que había quedado "olvidada" de la vez anterior.
Y erróneamente piensa que el usuario ha vuelto a pulsar enter, así que ahora sí recoge este carácter, lo pasa por el switch y repite el bucle de nuevo.
Esta vez como el stream ya ha quedado vacío, ahora si tenemos ocasión de volver a teclear.
No se si me he explicado bien...
Bueno, ¿solución?
Una solución es usar fflush() para limpiar el stream de entrada. Aunque parece ser que no es aconsejable porque fflush() está pensado para streams de salida de datos, no de entrada.
Entonces no está garantizado que funcione e incluso puede tener comportamientos inesperados.
Yo lo he probado, y si me funciona. Lo marco en negrita
Otra opción es simplemente volver a hacer un scanf() seguido, o un simple getchar(), para recoger el caracter de la tecla enter. Lo recogemos para quitarlo del stream de entrada y que no moleste, no haremos ninguna operación con él.
Y con eso queda solucionado.
Por cierto, dices que se han pedir 10 números, pero tal y como has puesto el for solo se piden 9.
Y te reescribo el switch de otra forma distinta que hace lo mismo, pero ahorras líneas.
Cuando hay varios cases que van a tener el mismo código, puedes unirlos de esta manera y escribir ese código solo una vez.