Pero, ¿y si por ejemplo alguien ingresa 1000? Tal y como tú lo planteas el resultado sería 1 (si el programa funcionara bien, claro), ¿es esto aceptable?
EDIT: Bueno, tras depurarlo un poco veo que el problema radica en
inv=(n%10)+(invertir(n/10)*10);, ya que al pasarle 123 por ejemplo:
inv = 3 + (invertir(12)*10)
invertir(12) = 21
21 * 10 = 210
210 + 3 = 213
Deberías multiplicar (n%10) por 100 (primera potencia de 10 superior a 12) para que funcionase. Pero tu problema fundamental radica en que no tienes en cuenta la longitud del número introducido. Piensa en hacerlo con cadenas de caracteres.