soad0188 | Bonjour,
j'utilise la librairie GMP pour les grands nombres, mais je n'arrive pas à faire de test sur mes variables..
par exemple : max fixé à 13, et i à 2
while(i < max){
mpz_add(i, i, un);
}
le test (i < max) est tjrs validé alors que i devient bien plus grand que max
Comment ça marche ?
merci d'avance
Mon programme (très simple)
Code :
- int main (int argc, char **argv){
- mpz_t nb, deux, un, max, i;
- int o;
- /* Initialize variables */
- mpz_init (nb);
- mpz_init (un);
- mpz_init (deux);
- mpz_init (max);
- mpz_init (i);
- /* Assign a and b from base 10 strings in argv */
- mpz_set_str (nb, argv[1], 10);
- mpz_set_str (un, "1", 10);
- mpz_set_str (deux, "2", 10);
- mpz_set_str (i, "2", 10);
-
- mpz_cdiv_q (max, nb, deux); // max = nb/2
- while(i != max){
- mpz_add(i, i, un);
- gmp_printf ("%Zd * - * ", i);
- gmp_printf ("%Zd\n", max);
- if (i < max){
- printf("ça doit marcher" );
- }else{
- printf("ça ne doit pas marcher" );
- }
- scanf("%d", &o);
- }
- /* Print all in decimal */
- gmp_printf ("%Zd\n", nb);
- gmp_printf ("%Zd\n", max);
- /* Clear out variables */
- mpz_clear (nb);
- mpz_clear (deux);
- mpz_clear (max);
- mpz_clear (i);
- return 0;
- }
|
|