Título: Ayuda nuevamente con este simple codigo Publicado por: spiderboot en 12 Mayo 2014, 21:33 pm Se supone que el codigo debe resolver la siguiente cuestion se ingresan cierta cantidad de alumnos aprobados y cierta cantidad de alumnos reprobados, el programa debe arrojar el numero total de alumnos, el porcentaje de alumnos aprobados y el porcentaje de alumnos reprobados: para la cual elabore el siguiente codigo, pero no me realiza las operaciones, probe con estas cantidades 15 aprobados y 35 reprobados y solo funciona cuando me calcula el total de alumno (50), en los procentajes me arroja cero, espero su ayuda y gracias de antemano
Código: #include <cstdlib> he intentado cambiar las ultimas 2 variables (paprobados y preprobados) a tipo flotante para ver si es por alla el problema pero el resultado es el mismo 0.0000 Título: Re: Ayuda nuevamente con este simple codigo Publicado por: Blaster en 12 Mayo 2014, 22:22 pm Para sacar el porcentaje de aprobados y reprobados del total, la operación la debes cambiar a esta
Código
Utiliza el tipo float para obtener resultados mas precisos Saludos. Título: Re: Ayuda nuevamente con este simple codigo Publicado por: Caster en 12 Mayo 2014, 22:58 pm ¿Y por qué el resultado es 0 haciendo las operaciones sin paréntesis?
Título: Re: Ayuda nuevamente con este simple codigo Publicado por: Blaster en 12 Mayo 2014, 23:38 pm ¿Y por qué el resultado es 0 haciendo las operaciones sin paréntesis? En el codigo de Spiderboot al dividir el número de aprobados por el total, el resultado siempre es cero ya que en C siempre se trunca cualquier valor real donde interviene el tipo int pasandolo al entero mas cercano y luego al multiplicarlo por cien da el cero que mencionas Saludos Título: Re: Ayuda nuevamente con este simple codigo Publicado por: Caster en 12 Mayo 2014, 23:41 pm En el codigo de Spiderboot al dividir el número de aprobados por el total, el resultado siempre es cero ya que en C siempre se trunca cualquier valor real donde interviene el tipo int pasandolo al entero mas cercano y luego al multiplicarlo por cien da el cero que mencionas Saludos Al dividir 15/35 da 0.4... por lo tanto lo redondea a 0 y después al multiplicarlo por 100 sigue dando cero, ¿no? Título: Re: Ayuda nuevamente con este simple codigo Publicado por: Blaster en 12 Mayo 2014, 23:44 pm Al dividir 15/35 da 0.4... por lo tanto lo redondea a 0 y después al multiplicarlo por 100 sigue dando cero, ¿no? Correcto, como ya sabes todo número multiplicado por cero da cero Saludos Título: Re: Ayuda nuevamente con este simple codigo Publicado por: Caster en 12 Mayo 2014, 23:49 pm Pero sin embargo si introduces los números 15 y 1, el total es 16 por lo tanto al dividir 15/16 en los alumnos aprobados el resultado es 0.9... lo que redondea a 1 y multiplicado por 100 es 100 no 0 y el resultado que da el programa es 0.
Un saludo Título: Re: Ayuda nuevamente con este simple codigo Publicado por: rir3760 en 13 Mayo 2014, 03:29 am sin embargo si introduces los números 15 y 1, el total es 16 por lo tanto al dividir 15/16 en los alumnos aprobados el resultado es 0.9... lo que redondea a 1 No, como ya te comento Blaster en la división entera la parte decimal se descarta, el resultado de 15 / 16 es 0.Un saludo Título: Re: Ayuda nuevamente con este simple codigo Publicado por: leosansan en 13 Mayo 2014, 15:35 pm Pero sin embargo si introduces los números 15 y 1, el total es 16 por lo tanto al dividir 15/16 en los alumnos aprobados el resultado es 0.9... lo que redondea a 1 y multiplicado por 100 es 100 no 0 y el resultado que da el programa es 0. No se hace un redondeo sino un truncamiento, vamos le quita los decimales y se queda con la parte entera. ¡¡¡¡ Saluditos! ..... !!!! (http://st.forocoches.com/foro/images/smilies/aaaaa.gif) Título: Re: Ayuda nuevamente con este simple codigo Publicado por: spiderboot en 13 Mayo 2014, 15:39 pm gracia compañero mil gracias, copie y pegue el codigo que me proporcionaron y resulto, aunque creo que ya lo habia puesto asi, pero no habia funcionado, lo copie y pegue y se soluciono, gracias por su tiempo y conocimiento
|