SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: eowyn_cr en Sábado 8 de Marzo de 2003, 22:05
-
Cómo descompongo un entero para introducirlo dígito por dígito en un vector?
Por ejemplo, el número 7895, quedaría almacenado en un vector de 20 enteros, en la primera posición el 7, en el segundo campo el 8, en el tercer campo el 9 y así sucesivamente.
indice 1 2 3 4 5 6 7 8 ... 20
7 8 9 5
-
Bueno, primero de nada respondo de memoria a esta pregunta, a lo mejor fallo en el número de parametros de las funciones, pero espero que te sirva de guia para buscar la solución.
Hay una manera de pasar los enteros a cadenas que es imprimir su valor en un array. Después cada caracter lo tomaremos como un dígito pasandolo a entero.
Voy a suponer tus estructuras de datos y te voy a plantear una solución.
//tus datos
int vector[20]; //tu vector de 20 posiciones
unsigned char cadena[20]; // un vector auxiliar
int numero;
char digito;
//inicializamos el auxiliar
memset(cadena, ' ', 20);
//supongamos que calculas el valor
numero = 7895;
//lo imprimimos en el auxiliar
sprintf(cadena, "%d", numero);
//copiamos el contenido
for( int i=0; i < strlen(cadena); i++){
//cogemos el caracter de cada digito
digito = cadena;
//convertimos ese caracter a entero
vector = atoi(digito);
}
Nota: no recuerdo que include necesita el atoi, y no he probado el código, igual te hace falta algun cast a algun tipo de dato en algun sitio.
Espero que haya servido
Un saludo.