Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Invertir número en C

Estas en el tema de Invertir número en C en el foro de C/C++ en Foros del Web. Hola foros del web tengo un problema , el programa invierte el número natural en C , pero por ejemplo el número: 90800 solo invierte ...
  #1 (permalink)  
Antiguo 23/12/2012, 05:42
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 4 meses
Puntos: 1
Invertir número en C

Hola foros del web tengo un problema , el programa invierte el número natural en C , pero por ejemplo el número:

90800 solo invierte el 809 no los 00 , alguna ayuda?

Código:
/*Invertir numero de hasta 10 digitos*/
#include <stdio.h>
int main(void){
/*Definir variable*/
    int n, resto,invertido=0;                                            
/*Lo guarda en la variable n*/             
    scanf("%d",&n);
/*El while reccore el numero ingresado*/                                                      
    while(n!=0)                               
      {
/*Guarda el resto de la división del numero y 10,para asi guardar cada dígito */
         resto=n%10;
/*Disminuye el numero para asi poder utilizar el digito siguiente*/                  
         n=n/10;         
/*Invierte el número directamente*/                
         invertido=invertido*10+resto;         
       }
/*Imprime el número invertido*/
printf("%d \n",invertido);
return 0;
}
  #2 (permalink)  
Antiguo 23/12/2012, 07:00
 
Fecha de Ingreso: agosto-2012
Mensajes: 601
Antigüedad: 11 años, 8 meses
Puntos: 83
Respuesta: Invertir número en C

¿¿Como??? Estas sumando 0 a un tipo entero, que tal como dice la expresion popular 'cuenta menos que un cero a la izquierda'; si quieres que se guarden todos los valores tienes que guardarlos en un texto, de lo contrario nunca llegaran a mostrarse: es como si declaras un entero de la siguiente forma

Código:
int invertido = 0000000000809;
printf("%d",invertido);
Es un ejemplo con 10 ceros, daria lo mismo con ochentamil ceros ok? Si quieres guardarlo para manipularlo despues te será igual con ceros que sin ceros; si necesitas pasarlo por algun tratamiento de texto necesitaras guardarlos en un texto (char*) porque no tendrá en cuenta el valor numerico; y si solo necesitas volcarlos por pantalla puedes mostrarlos al momento.

Saludos
vosk
  #3 (permalink)  
Antiguo 02/01/2013, 05:08
Avatar de veniwarez  
Fecha de Ingreso: julio-2010
Mensajes: 110
Antigüedad: 13 años, 8 meses
Puntos: 3
Respuesta: Invertir número en C

Podrías probar con tablas sería MUY facil!
Si necesitas más info dime y te hecho una mano!
  #4 (permalink)  
Antiguo 02/01/2013, 11:08
Avatar de L3m0n  
Fecha de Ingreso: diciembre-2011
Mensajes: 219
Antigüedad: 12 años, 3 meses
Puntos: 46
Respuesta: Invertir número en C

Solo tienes que guardar el numero en un array de chars. Una vez ahi solo tienes que invertir una cadena, que es muy facil.




Saludos
  #5 (permalink)  
Antiguo 02/01/2013, 11:45
 
Fecha de Ingreso: abril-2011
Mensajes: 224
Antigüedad: 13 años
Puntos: 8
Respuesta: Invertir número en C

Puedes hacer lo que dice L3m0n, o, no conozco muy bien la biblioteca estándar de C, pero en C++ hay 2 funciones en iomain, setw() y setfill(), que te servirían, primero comprobarías la cantidad de dígitos que tiene el número que se ingrese, y después, hacer un setfill('0') y un setw(numero).

Claro, es más conveniente la forma que te dice L3m0n, pero siempre es mejor conocer varias opciones :)
  #6 (permalink)  
Antiguo 04/01/2013, 09:38
Avatar de cronopiomx  
Fecha de Ingreso: mayo-2012
Ubicación: Programing Cloud
Mensajes: 282
Antigüedad: 11 años, 11 meses
Puntos: 28
Respuesta: Invertir número en C

Hola, podrias usar la funcion reverse() y te funciona, he aqui 1 ejemplo
Código:
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

int main ()
{
   string a = "90800";
   
   reverse(a.begin(), a.end());
   cout<<a;
 
 system("pause");   
}
  #7 (permalink)  
Antiguo 04/01/2013, 13:41
Avatar de L3m0n  
Fecha de Ingreso: diciembre-2011
Mensajes: 219
Antigüedad: 12 años, 3 meses
Puntos: 46
Respuesta: Invertir número en C

Cita:
Iniciado por cronopiomx Ver Mensaje
Hola, podrias usar la funcion reverse() y te funciona, he aqui 1 ejemplo
Código:
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;

int main ()
{
   string a = "90800";
   
   reverse(a.begin(), a.end());
   cout<<a;
 
 system("pause");   
}

Estamos en C, no en C++ :P
  #8 (permalink)  
Antiguo 11/01/2013, 07:32
 
Fecha de Ingreso: diciembre-2011
Mensajes: 414
Antigüedad: 12 años, 4 meses
Puntos: 1
Respuesta: Invertir número en C

Perdon por no contestar,pero ya esta solucionado :)

Etiquetas: int, invertir, programa, variables
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 01:10.