Programación General > C/C++
Problema para separar numeros en sus digitos
chenech:
Habran otras formas mas elegantes de hacerlas, peso asi rápido, se me ocurre esta, espero te sirva, un saludo.
--- Código: --- int iNumero;
char cCadena[10];
printf("Teclee el numero: ");
scanf("%d",&iNumero);
itoa(iNumero, cCadena, 10);
for(int i=0;i<strlen(cCadena);i++)
printf("%c ", cCadena[i]);
printf("\n");
for(int i=strlen(cCadena)-1;i>-1;i--)
printf("%c", cCadena[i]);
printf("\n");
--- Fin del código ---
nachete_222:
Pero te ha dicho que en C++ y le has contestado en C
Ahí va una solución. Yo te pongo un programa para resolver un numero de 5 digitos exactamente y tu te lo trabajas para numeros que tengan cantidades arbitrarias de numeros.
--- Código: ---// separa los digitos de un numero
#include <iostream>
using namespace std;
// la función main comienza la ejecución del programa
int main()
{
int num1; // número que introduce el usuario
cout << "Digite un numero de 5 digitos: ";
cin >> num1;
cout << "\n" << num1 / 10000 << " " << num1 % 10000 / 1000 << " "
<< num1 % 1000 / 100 << " " << num1 % 100 / 10 << " "
<< num1 % 10 << endl;
return 0; // indica que el programa terminó satisfactoriamente
} // fin de la función main
--- Fin del código ---
La explicación es la siguiente:
si tu numero tiene 5 digitos buscas la unidad seguida de ceros que tenga 5 digitos, en este caso 10000, al dividir por 10000 te separa el primer numero y lo imprimes.
para el siguiente numero haces el "modulo" (%) de 10000 y esto te deja de resto 4 digitos que los divides por la unidad seguida de ceros que tenga 4 digitos, osea 1000,
el tercer paso es similar al segundo haces el "modulo" de 1000 para quedarte con solo 3 digitos y los divides por unidad seguida de ceros con 3 digitos en total, osea 100....
y asi sucesivamente....
¡Espero haberme explicado bien!
Un saludo
Nacho
Navegación
[*] Página Anterior
Ir a la versión completa