Creo que el problema lo tienes aquí:
Código C++:
Ver originalrevertido
= revertido
+ ultima_cifra
* pow( 10, contador
);
La función pow() retorna un double, y tú lo estas multiplicando por un int. En esa parte pierdes la precisión que luego te provoca el error. Lo puedes comprobar imprimiendo el valor de revertido en cada iteración del bucle.
Puedes arreglarlo así:
Código C++:
Ver original#include <math.h>
#include <stdio.h>
int main( void )
{
int numero, contador = 0, ultima_cifra, revertido = 0;
double parcial=0;
printf( "Por favor tipea un numero de cinco cifras y yo lo revertire\n" ); for( contador = 4; contador >= 0; contador-- )
{
ultima_cifra = numero% 10;
numero = numero / 10;
parcial
= pow( 10, contador
); revertido = revertido +ultima_cifra* parcial;
}
printf( "El numero revertido es %d", revertido
); }
Saludos!