Dividiendo entre 10 un número
entero y sumándole uno al contador hasta que el resultado sea 0 es como puedes contar el número de cifras (ya que en un int solo te coge la parte entera, y por tanto llegará a ser 0).
dato000, tu código tiene algunos errores... Para pedir datos debes usar scanf, no printf, y en:
resultado = (numero % 10) * 10^2;
Donde tienes puesto el 2, es una variable que empieza en el número de cifras y se va restando uno... Lo entenderás mejor cuando deje el código:
#include <stdio.h>
#include <math.h>
int num_dividir(int n)
{
int i=0;
while(n > 0)
{
n /= 10;
i++;
}
return i;
}
int funcionRecursiva (int n, int cifras, int resultado)
{
if(cifras <= 0) return resultado/10;
else
{
resultado
+= (n
% 10) * pow(10,cifras
); n /= 10;
cifras--;
return funcionRecursiva(n, cifras, resultado);
}
}
int main ()
{
int f
, funcion
, div, resultado
; printf ("Ingrese el numero\n"); div = num_dividir
(f
); //Numero de cifras resultado
= funcionRecursiva
(f
, div, 0); printf("El numero invertido es: %d", resultado
);
return 0;
}
No lo he probado, pero creo que funciona bien.
Saludos!