Título: Detectar si un numero es entero o no Publicado por: Caster en 25 Octubre 2012, 20:15 pm Bueno pues sigo con el mismo ejercicio que estoy haciendo en el ultimo post que hice hace poco tiempo, pero esta vez es otro problema, aqui os dejo el codigo que llevo:
Código
Lo primero que me pide el ejercicio es que segun el numero de segundos introducidos, analice si es un numero entero de minutos o no, y creo que este codigo esta bien, pero ponga el numero que ponga siempre me da que si, y ya lo he repasado mil veces y he probado a ponerlo de otras maneras pero siempre pasaba lo mismo, creo que estoy fallando en una tonteria pero no me doy cuenta. Saludos EDITO:He probado a cambiar la variable segundos de tipo int a tipo double y asi funciona perfectamente, y se que el error estaba el linea de asignacion a minutos despues del bucle while, pero sigo sin enetender el error Saludos Título: Re: Detectar si un numero es entero o no Publicado por: leosansan en 25 Octubre 2012, 21:45 pm pero sigo sin entender el error Tal como lo tenías Código era una operación entre enteros y devolvía un entero, por eso siempre te daba SI. Puedes seguir declarando a segundos como entero pero usar: Código O bien, siguiendo con segundos como entero, hacer un casting: Código
Título: Re: Detectar si un numero es entero o no Publicado por: Caster en 25 Octubre 2012, 21:47 pm Algo habia pensado yo que era por culpa en esa sentencia y los tipos de variables, pero no me daba cuenta. Muchas gracias
Saludos Título: Re: Detectar si un numero es entero o no Publicado por: leosansan en 25 Octubre 2012, 21:54 pm Citar Fijate que he reeditado el post anterior. SaludosTítulo: Re: Detectar si un numero es entero o no Publicado por: Caster en 25 Octubre 2012, 22:01 pm Muchisimas grcias por la respuesta, voy a hacer un cast a segundos, porque asi me sirve para el resto del programa, me acabas de resolver justo un problema que acaba de tener ahora mismo.
Saludos Título: Re: Detectar si un numero es entero o no Publicado por: ecfisa en 29 Octubre 2012, 06:25 am Hola Caster.
Otra opción es: Código
Saludos. Título: Re: Detectar si un numero es entero o no Publicado por: Caster en 29 Octubre 2012, 20:01 pm Muchas gracias, pero es parte de un ejercicio que he puesto en otro hilo y lo que pide el ejercicio es unicamente detectar si es un numero entero o no, no pide el resto.
Saludos Título: Re: Detectar si un numero es entero o no Publicado por: ecfisa en 2 Noviembre 2012, 01:13 am Hola Caster.
Haa entiendo, no sabía lo del otro hilo... En realidad, lo que quería destacar es que: Para saber si la cantidad de segundos ingresada es un número exácto de minutos, basta con verificar que el resto de la división de la cantidad ingresada de segundos por 60, sea igual o distinta de 0. (1 minuto = 60 segundos) El operador '%' devuelve el módulo (resto) de la división, entonces tu código podría haber quedado: Código
Saludos. :) Título: Re: Detectar si un numero es entero o no Publicado por: Caster en 2 Noviembre 2012, 09:05 am En el otro hilo me dijeron lo mismo, y al final quedo asi el codigo:
Código
Es el codigo del ejercicio completo, por eso hay alguna parte que no tiene nada que ver son este hilo. Saludos Título: Re: Detectar si un numero es entero o no Publicado por: BatchianoISpyxolo en 2 Noviembre 2012, 13:23 pm El título del tema es "Detectar si un numero es entero o no"
¿Por qué segundos, minutos, horas? What? xD Código
Edito: Ah, número entero de segundos, minutos etc con aritmética modular. Perdón. ¡Saludos! Edito2: Por cierto, ¿has probado el operador % con números suficientemente grandes? No estoy seguro pero pordría no funcionarte. Y posiblemente en las librerías que has incluido haya una función que calcule el módulo de un número entre otro. Título: Re: Detectar si un numero es entero o no Publicado por: Caster en 2 Noviembre 2012, 13:32 pm Claro, es de un ejercicio que me pide a partir de un numero de segundos saber si son minutos, horas, y dias exactos. Aunque tu ejemplo no lo entiendo, porque busque en google la funcion floor pero no termino de entender lo que hace.
Saludos Edito: Ya he entendido, la funcion floor redondea x hacia abajo al entero mas cercano. Entonces si, tu codigo tambien valdria. Título: Re: Detectar si un numero es entero o no Publicado por: BatchianoISpyxolo en 2 Noviembre 2012, 13:37 pm Claro, es de un ejercicio que me pide a partir de un numero de segundos saber si son minutos, horas, y dias exactos. Aunque tu ejemplo no lo entiendo, porque busque en google la funcion floor pero no termino de entender lo que hace. Saludos Disculpa, mi código no tiene nada que ver con tu pregunta. Error mío. http://www.cplusplus.com/reference/clibrary/cmath/floor/ Código
Cita de: Salida floor of 2.3 is 2.0 floor of 3.8 is 3.0 floor of -2.3 is -3.0 floor of -3.8 is -4.0 |