Guardar numero en array

Iniciado por lol_fallen, 29 Febrero 2012, 12:44 PM

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

lol_fallen

AVer os comento lo que quiero hacer, necesito guardar un numero muy largo por ejemplo 10000000000000000000, en un array pero necesito guardarlo de una manera, y es que quiero que cada posicion del array sea un dígito de ese numero.

Osea tiene que ser por ejemplo ARRAY[50], le meto el numero 50000, y las posiciones del array me tiene que dar :
posicion 1: 5
posicion 2: 0
etc

Se puede hacer esto?

Flamer

hola lol_fallen si se puede hacer eso y los array siempre enpiesan dela posicion 0
primero declara el array
segundo ya sabiendo la longitud del numero o cadena dale el valor de longitud al array (esto nose si se pueda en java se puede en c++ no me acuerdo)
tersero nesesitas un bucle para llenar el array
saludos flamer


Xandrete

Cita de: Akai en 29 Febrero 2012, 16:27 PM
usa sprintf

http://cplusplus.com/reference/clibrary/cstdio/sprintf/

Supongo que te refieres a guardar el número en un int y luego imprimirlo en un array usando sprintf. Esto no funcionaría si el número es demasiado grande. Me explico. 100000000000000000000000000000000000000000000000000000000000000000000000 es demasiado largo para guardarlo en un int de 64 bits, luego no servirá de nada todo lo que hagas posteriormente. Es mejor leer de la entrada carácter a carácter y guardar cada carácter en un string.
De hecho, para problemas de este tipo hay que hacerlo así (en C/C++).

Saludos

satu

Hola

También podría guardar el número completo en un string (leerlo todo de una vez) y después recorrerlo carácter a carácter y almacenar los dígitos en el array.

Saludos
Breakbeat como forma de vida

lol_fallen

Me podriais poner un ejemplo? es que esa funcion es la primera vez que la uso :S

satu

#6
Hola

En ejemplo para que veas como es:

Código (cpp) [Seleccionar]

char cad[100];
int array[100], index = 0;
cin >> cad;
for(int i = 0; i < strlen(cad); i++) {
   if(cad[i] >= '0' && cad[i] <= '9') {
       array[index] = cad[i] - '0'; // El - '0' para pasar a int
       index++;
   } else {
       cout << cad[i] << " no es un numero";
   }
}

//Mostramos el array
for(int i = 0; i < index; i++) {
   cout << array[i] << endl;
}


Saludos
Breakbeat como forma de vida