Hola, he estado ojeando vuestra web y he pensado que quizás podríais ayudarme con este problema: se trata de invertir un número introducido por teclado de manera recursiva. El problema viene al introducir un número de 3 o más dígitos, ya que solo invierte dos dígitos, dejando el que en teoría debería de estar primero al final(por ejemplo, 123 queda como 213).
He aquí el código que he hecho:
#include <stdio.h>
int invertir(int n);
main() {
int n;
printf("Introduce un numero entero positivo: ");
scanf ("%d",&n);
printf ("El numero invertido es: %dn",invertir(n));
}
int invertir(int n){
int inv=0;
if (n<10){
inv=n;
}
else if ((n/10)<10){
inv=(10*(n%10))+(n/10);
}
else{
inv=(n%10)+(invertir(n/10)*10);
}
return(inv);
}
Un saludo y muchas gracias de antemano.