Pasar un número a un vector

Iniciado por dailia__, 18 Noviembre 2017, 17:33 PM

0 Miembros y 1 Visitante están viendo este tema.

dailia__

Hola,
Tengo que hacer un problema que para empezarlo necesito pasar de un número a un vector leyéndolo dígito a dígito, pero dice que el número es demasiado largo como para poder ponerlo en int y la verdad no sé que hacer. He estado leyendo algún caso en este mismo foro y pone que se utilice sprintf pero no vi ningún ejemplo y no sabría como hacerlo. ¿Podríais ayudarme?
Es decir: si tengo 1234512345123451234512345
a[0]=1 a[1]=2 a[2]=3...

Para poner un poco del código y que esté conforme con las reglas del foro como tengo que hacerlo?

Gracias

MAFUS

Escribe el código y selecciónalo; en la barra de herramientas, arriba del recuadro verás una lista extensible con título 'Código GeSHi', pinchas sobre ella y eliges el lenguaje que está codificado tu código. Listo.

dailia__

#2
Okay, a ver que sale... si no es lo esperado pues lo siento, no lo veo y al poner C sale eso. Bueno, la cuestión es que he intentado este código para pasar de un int de 25 a una cadena y después a un vector, pero es que no da y aunque así fuese no entiendo el motivo de por que hay que hacerlo así. Alguien podría aclarar mis dudas?


Código (caddcl) [Seleccionar]

#include <stdio.h>
#include <conio.h>
#include <string.h>
int main (void){
char cad[26];
int a[50], b[50], m, n, i, index;
printf ("introduce numero de 25 cifras");
scanf ("%d",&n);
sprintf (cad, "%d",n);
printf ("%s",cad);
index=0;
for (i=0; i<strlen(cad); i++){
if(cad[i] >= '0' && cad[i] <= '9') {
a[index] = cad[i] - '0';
index++;
}
else{
printf ("no es un numero\n");
}
}
/*mostramos el vector*/
printf ("vector\n");
for (i=0; i<index; i++){
printf ("%d\n",a[i]);
}
getch ();
return 0;
}

MAFUS

Es cierto, un número de 25 caracteres es demasiado largo. Pero una cadena de texto también es un vector, así que lo que puedes hacer es capturar el número como si fuera una cadena y después mirar que todos los caracteres son dígitos. Recuerda que una cadena tiene el caracter NUL ( '\0' )al final.