Programación General => C/C++ => Mensaje iniciado por: alberto07 en Domingo 27 de Septiembre de 2009, 06:38
Título: Programa numero palindrome
Publicado por: alberto07 en Domingo 27 de Septiembre de 2009, 06:38
Hola a Todos!
He hecho un programa el cual me obtiene el palindrome de un numero, sumandolo y sumarle el inverso hasta que se obtiene un palindrome.
El caso es que cuanto digito un numero el cual requier mas de 15 o 16 iteraciones por ej. 89 que requiere 24 la pantalla se me queda en 000000 y asi, que tengo que cerrar el programa. Podrian decirme la cusa de esto?
Gracias de antemano.
Título: Re: Programa numero palindrome
Publicado por: Eternal Idol en Domingo 27 de Septiembre de 2009, 10:38
Por supuesto, el codigo esta mal.
Título: Re: Programa numero palindrome
Publicado por: alberto07 en Domingo 27 de Septiembre de 2009, 18:15
Pero si me funciona para muchos otros numeros, hasta 15 o 16 iteraciones. Que puede tener de malo el codigo.
Invertir es la funcion que invierte el numero.
Título: Re: Programa numero palindrome
Publicado por: Eternal Idol en Domingo 27 de Septiembre de 2009, 20:24
No esta el codigo completo y no se que hace exactamente invertir pero tene en cuenta que num tiene un limite.
Título: Re: Programa numero palindrome
Publicado por: alberto07 en Lunes 28 de Septiembre de 2009, 03:53
Esta es la funcion invetrir
Código: C
//funcion que invierte un numero
int invertir(int n)
{
long d, i=0;
while(n>0)
{
d=n%10;
i=i*10+d;
n/=10;
}
return i;
}
A cual limite te refieres?
Título: Re: Programa numero palindrome
Publicado por: m0skit0 en Lunes 28 de Septiembre de 2009, 11:23
¿Seguro que no es un desbordamiento de long? A lo mejor debes usar unsigned long long.
Título: Re: Programa numero palindrome
Publicado por: Eternal Idol en Lunes 28 de Septiembre de 2009, 12:15
Las variables tienen un rango, averigua cual es el limite de long.
Título: Re: Programa numero palindrome
Publicado por: alberto07 en Lunes 28 de Septiembre de 2009, 16:56
OK, no me habia dado cuenta, entonces habra alguna forma de extender el rango de una variable?
Título: Re: Programa numero palindrome
Publicado por: m0skit0 en Lunes 28 de Septiembre de 2009, 16:59
Cita de: "alberto07"
entonces habra alguna forma de extender el rango de una variable?
Cita de: "m0skit0"
A lo mejor debes usar unsigned long long.
:huh:
Título: Re: Programa numero palindrome
Publicado por: alberto07 en Lunes 28 de Septiembre de 2009, 18:28
Me Sigue dando el mismo error, a parte es en C y creo que usigned long long es para C++, si no me quivoco.
Título: Re: Programa numero palindrome
Publicado por: m0skit0 en Martes 29 de Septiembre de 2009, 09:59
Cita de: "alberto07"
creo que usigned long long es para C++
También para C. C++ lo que añade son las clases y todo el paradigma de orientación a objetos.
Ponte algo compilable que dé ese mismo error y ya lo depuramos.