Cambia de manual, cualquier manual que icentive el uso de conio y de void main denota la poca habilidad del autor.
El error que ocurre es algo frecuente en las entradas en C (menos mal que yo me pasé a C++). Lo normal es que los datos se lean enteros pero a veces se cuela basurilla... Prueba poner esto después del ultimo scanf:
..........................................
PD: Un consejo, yo no empezaría con C sino que me iría a C++... Hay muchas más funciones, herramientas y menos limitaciones... Además cuando ya lleves un buen nivel, podrás empezar con la programación orientada a objetos sin problemas.
El error que ocurre es algo frecuente en las entradas en C (menos mal que yo me pasé a C++). Lo normal es que los datos se lean enteros pero a veces se cuela basurilla... Prueba poner esto después del ultimo scanf:
..........................................
PD: Un consejo, yo no empezaría con C sino que me iría a C++... Hay muchas más funciones, herramientas y menos limitaciones... Además cuando ya lleves un buen nivel, podrás empezar con la programación orientada a objetos sin problemas.
Es como ser del Atlético de Madrid se es porque se es. Si es por eso y por la comodidad de tener más funciones "a mano" mejor te pasas a Pyttho, Ruby o el mismo basic. Sé que es más "duro" tener que implementar uno mismo ciertas funciones que da ya hechas el C++ pero eso "curte" como programador y como dije es como ser del Atleti.
Y en este caso la "basurilla" se elimina dejando simplemente un espacioen blanco en los scanf, tipo:
Código:
scanf(" %f",&si);
Citar
Por cierto no acabo de entender esto, no hace nada?:
Código
Es un formato del scanf, cosas del bendito C, que permite entrar una cadena con espacios en blanco, aunque debería indicar con un número la cantidad de carateres a tomar. Haría la misma función de esa manera que fgets.
Citar
Por otro lado:
Mucho cuidado con gets, si insertas un texto mayor que la variable char (en este caso 30) podría dar lugar a errores extraños... De hecho no se recomienda usar esa función.
Código
Mucho cuidado con gets, si insertas un texto mayor que la variable char (en este caso 30) podría dar lugar a errores extraños... De hecho no se recomienda usar esa función.
Es más aconsejable, como bien dice amchacon, el uso de fgets:
Código:
fgets(nom,31,stdin);
Saluditos!. ....
P.D: Además de conio te sobran las librerías math y windows.