Hola, chicos!
cómo puedo invertir un número dado, osea, si me dan 3421 que el programa me devuelva:
1243?
gracias...
basicamente lo que se hace es un ciclo con una división, modulo y multiplicación
(siendo e entrada y s salida)
e: 1020304
s:0
/*ciclo 1*/
s = s + (e mod 10) //esto obtendrá el 4 final, que es el modulo de 10
-- s: 4
s = s*10 //para mover el valor un espacio a la izquierda
-- s: 40
e = e/10 //como son enteros no se guardan decimales
-- e: 102030
/*ciclo 2*/
s = s + (e mod 10) //esto obtendrá el 4 final, que es el modulo de 10
-- s: 40
s = s*10 //para mover el valor un espacio a la izquierda
-- s: 400
e = e/10 //como son enteros no se guardan decimales
-- e: 10203
/*ciclo 3*/
s = s + (e mod 10) //esto obtendrá el 4 final, que es el modulo de 10
-- s: 403
s = s*10 //para mover el valor un espacio a la izquierda
-- s: 4030
e = e/10 //como son enteros no se guardan decimales
-- e: 1020
/**** varios ciclos despues ***/
-- s: 40302010
-- e: 0
s = s/10 // (un factor de correción por el 0 sobrante)
el ciclo termina al la entrada ser 0... ahora intenta hacer el algoritmo y mostrar tu avance
Muchas gracias. Mira mi avance. Creo que lo hice para ese número y ahora tocará de una forma más genereal.
//#include <stdio.h>
int invierteNum(int num); //prototipo de función
int main(){
int numero = 1020304;
int invertido = 0;
//INVOCA A LA FUNCIÓN PARA INVERTIR EL NÚMERO
invertido = invierteNum(numero);
printf("%d", invertido);
return 0;
}
//FUNCIÓN PARA INVERTIR EL NÚMERO DADO
int invierteNum(int num){
int invertido = 0;
while(num > 0){
invertido = invertido + (num%10);
invertido = invertido * 10;
num = num/10;
}
return invertido;
}
Disculpa mi ignorancia. Ya ese programa me sirve con cualquier número xD. Cómo? no sé :v
#include <stdio.h>
int invierteNum(int num); //prototipo de función
int main(){
int numero = 0;
int invertido = 0;
printf("Inserte un numero entero");
scanf("%d",&numero);
//INVOCA A LA FUNCIÓN PARA INVERTIR EL NÚMERO
invertido = invierteNum(numero);
printf("%d", invertido);
return 0;
}
//FUNCIÓN PARA INVERTIR EL NÚMERO DADO
int invierteNum(int num){
int invertido = 0;
while(num > 0){
invertido = invertido + (num%10);
invertido = invertido * 10;
num = num/10;
}
invertido = invertido /10;
return invertido;
}
MUCHAS GRACIAS!!