Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - DickGumshoe

#231
Me sale 4 bytes.
#232
Tanto en tu código como en uno que he hecho yo (que ha resultado ser igual que el tuyo), me da 43123298370...  :(
#233
Qué raro... A mí me da 1620828886. La página es Project Euler.
#234
El problema es de una página muy conocida de retos de programación, por lo que buscando en Internet acabo de ver que da 1366. No sé si será el resultado correcto...
#235
¡Muchas gracias! Creía que era esa función la de dividir...

La suma no da... Así que he puesto esto:

while(mpz_cmp_ui(resultado, 0) >0)
    {//BUCLE INFINITO
        suma += mpz_mod_ui(mod, resultado, 10); //suma = suma + el resto de dividir resultado entre 10
        mpz_tdiv_q_ui(resultado, resultado, 10); //Dividimos resultado entre 10
        printf("%d\n", suma); //Además de que el bucle es infinito, he comprobado que la suma la hace mal.
        getchar();

    }


Para ver qué pasaba, y los primeros números los suma bien, pero a partir de 565 sale un número muy grande, números negativos, etc. (no sé por qué salen negativos, cuando "suma" es unsigned long int...)...
#236
Programación C/C++ / Re: Consejos
6 Julio 2012, 17:08 PM
Lo que pasa es que "si" es una cadena de caracteres. Por lo tanto, no se puede comparar con "==", sino con la función strcmp();

Por ejemplo:

if(strcmp(doc1, "si") == 0)
{
//Haces algo
}

Saludos.
#237
Sí, sería sumando los dígitos de 21000, pero ahora me he quedado con la curiosidad de por qué sale mal lo que he hecho... Seguiré probando, a ver si saco algo...
#238
Muchas gracias por corregir esa función, con la que había puesto yo tenía que crear la variable resultado también porque sino me daba error.

Sí, lo que quiero poner en el while() es que mientras resultado > 0, haga todo eso.

Saludos.

EDITO: También puse esa condición y no salía...

EDITO 2: Creo que el error no es la condición, sino lo de dentro, ya que he probado a poner:

while(mpz_cmp_ui(resultado, 0) !=0)
    {//BUCLE INFINITO
        suma += mpz_mod_ui(mod, resultado, 10); //suma = suma + el resto de dividir resultado entre 10
        mpz_set_ui(resultado, mpz_cdiv_ui(resultado, 10)); //Dividimos resultado entre 10
        gmp_printf("%Zd\n", resultado); //Además de que el bucle es infinito, he comprobado que la suma la hace mal.

    }


Y no da nunca resultado/10...
#239
¡Muchas gracias!

Ayer me ayudaste mucho a poder usar la librería GMP en Codeblocks. Seguro que este tutorial le servirá a mucha gente!

Saludos.
#240
Muchas gracias por responder.

Lo he inicializado, solo que dándole otro valor distinto de 0. Así:

mpz_set_ui(num, 2); //Inicializo num a 2

Además, debe estar bien, porque esa variable la utilizo para hacer 21000 y dicho resultado me da bien.

Saludos.