3
« en: Lunes 7 de Diciembre de 2009, 20:09 »
Hola a todos!!!!
He finalizado un programilla simple que dada una entrada numérica (enteros) por teclado, indica la cantidad de dígitos del número introducido e invierte la posición de los mismos. La compilación funciona bien, pero durante la ejecución es como si se quedara bloqueado contínuamente en un bucle, sin embargo no veo el porqué del problema. Os pego el código, a ver si un alma caritativa me dice que ocurre, porque soy incapaz de ver el problema....muchas gracias por adelantado!!!!
#include <stdio.h>
#include <math.h>
int invertidor(int num); //Declaración de la función que es llamada en el programa principal para realizar la inversión del número//
int main() //Programa principal que cuenta los dígitos y efectua la inversión mediante llamada a función//
{
int n;
int dig;
printf("nIntroduzca un numero: ");
scanf("%dn",&n);
dig=log10(n)+1; //Cálculo matemático para obtener la cantidad de dígitos del número//
printf ("El numero %d tiene %d digitos.n", n, dig);
printf("nEl numero %d al reves es: %dn",n, invertidor(n));
return 0;
system ("pause"); //Necesario para visualizar el programa hasta el final en ciertos compiladores//
}
int invertidor(int num) //Funcion que efectua la inversion y devuelve el número invertido//
{
int pos=0;
while(num>0) //Bucle para realizar la operación hasta alcanzar el valor cero//
{
pos=(pos*10)+(num%10); //Cálculo matemático para invertir un número que entre en la función//
num=num/10;
}
return(pos);
}