Título: Una duda concatenando un arreglo de enteros[C] Publicado por: flacc en 13 Julio 2012, 20:39 pm Hola, ya que tengo un tiempo libre he estado viendo el tema de concatenar enteros desde un arreglo de tipo entero, he escrito este código:
Básicamente tengo 2 contadores que por pereza no reduje a 1 :-*, ahora el funcionamiento se basa en que los decimales son de base 10, cosa que si tengo vector[3] = {1,2,3} una variable contando desde el final y la otra desde el principio: Citar resultado = 0; resultado += 3*(10^0); //donde 0 es la que cuenta desde el principio resultado = 3 resultado += 2 * (10^1); resultado = 23; resultado = 1 * (10^2); resultado = 123; la otra parte que ocupa la función es saber cuantos dígitos tiene el elemento numérico del vector con el cual se trabaja, de manera que si es 1 dígito se aumenta en 1 el exponente para seguir elevando, de otra forma le suma a exponente la cantidad de cifras - 1 que corresponde a sumarle el agregado de dígitos que si tuviéramos 1 solo, como decirlo, si tuviéramos 1 dígito el exponente se sumaría en 1, si tuviéramos 2 no tendríamos que sumarle 2 porque como si tenemos 1 se le suma 1 el agregado osea el segundo para que formen 2 es 1... (suena algo enredado lo se, no se me dan mucho las explicaciones :xD) Código
Ahora el problema es concatenar los números cuando tenemos mas de 9 dígitos ya que me dan números raros, y aunque pienso que debe ser algún problema de rango numérico no logro ver el error... quizás ustedes le puedan dar un ojo y decirme en que estoy fallando... saludos y gracias Título: Re: Una duda concatenando un arreglo de enteros[C] Publicado por: BlackZeroX en 13 Julio 2012, 20:49 pm Esos exámenes como dan lata... en esta liga se tiene la misma duda.
http://foro.elhacker.net/programacion_cc/operacion_suma_vectores_duda-t366632.15.html Veamos si te sirve... Código
Dulces Lunas!¡. Título: Re: Una duda concatenando un arreglo de enteros[C] Publicado por: dato000 en 13 Julio 2012, 21:00 pm pues que raro, probe con un arreglo de 10 posiciones, raro.
Código
esta fue la salida: Citar root@datohost:/home/dato000/Documentos/emacs/ejercicios/enteros# ./ejercicio 89978995123 1, 1 * 3 2, 10 * 23 3, 100 * 123 4, 1000 * 5123 5, 10000 * 995123 7, 1000000 * 8995123 8, 10000000 * 78995123 9, 100000000 * 978995123 10, 1000000000 * 1389060531 0, -2147483648 * 138906053 :huh: :huh: :huh: :huh: :huh: :huh: que carajos significa ese ultimo?? Título: Re: Una duda concatenando un arreglo de enteros[C] Publicado por: BlackZeroX en 13 Julio 2012, 21:09 pm Significa que llegaste al limite de capacidad de tu variable... revisa los limites...
Dulces Lunas!¡. Título: Re: Una duda concatenando un arreglo de enteros[C] Publicado por: flacc en 14 Julio 2012, 02:15 am era eso?, yo probé con long int y no funka
Título: Re: Una duda concatenando un arreglo de enteros[C] Publicado por: dato000 en 14 Julio 2012, 17:34 pm Significa que llegaste al limite de capacidad de tu variable... revisa los limites... Dulces Lunas!¡. Es un desbordamiento?? es como si en este caso, en un arreglo de 10 posiciones imprimiera el 11 verdad??? quiero tenerlo claro porque estoy hojeando un libro y haciendo unos ejercicios de arreglos y quiero tenerla clara. Título: Re: Una duda concatenando un arreglo de enteros[C] Publicado por: flacc en 14 Julio 2012, 20:49 pm de hecho el algoritmo nunca desborda el arreglo, lo se porque yo mismo lo hice :xD, lo que pasa es que independiente del tamaño del arreglo el contenido total se cuenta como cifra, y cuando esa cifra tiene mas de 9 0o 10 dígitos me da ese error por eso es que andaba preguntando... no tiene nada que ver con el tamaño del arreglo...saludos
Título: Re: Una duda concatenando un arreglo de enteros[C] Publicado por: BlackZeroX en 16 Julio 2012, 05:55 am Prueba a declara cifra con "long long int" y veras la gran diferencia... si la crifra o valor es mayor a el limite que puede alojar este tipo se resetea por así decirlo...
Dulces Lunas!¡. |