Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1120 connectés 

  FORUM HardWare.fr
  Programmation
  C

  lib GMP test while/if

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

lib GMP test while/if

n°1733545
soad0188
Posté le 19-05-2008 à 09:57:51  profilanswer
 

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 :
  1. int main (int argc, char **argv){
  2.   mpz_t nb, deux, un, max, i;
  3.   int o;
  4.   /* Initialize variables */
  5.   mpz_init (nb);
  6.   mpz_init (un);
  7.   mpz_init (deux);
  8.   mpz_init (max);
  9.   mpz_init (i);
  10.   /* Assign a and b from base 10 strings in argv */
  11.   mpz_set_str (nb, argv[1], 10);
  12.   mpz_set_str (un, "1", 10);
  13.   mpz_set_str (deux, "2", 10);
  14.   mpz_set_str (i, "2", 10);
  15.  
  16.   mpz_cdiv_q (max, nb, deux); // max = nb/2
  17.   while(i != max){
  18.     mpz_add(i, i, un);
  19.     gmp_printf ("%Zd * - * ", i);
  20.     gmp_printf ("%Zd\n", max);
  21.     if (i < max){
  22.       printf("ça doit marcher" );
  23.     }else{
  24.       printf("ça ne doit pas marcher" );
  25.     }
  26.   scanf("%d", &o);
  27.   }
  28.   /* Print all in decimal */
  29.   gmp_printf ("%Zd\n", nb);
  30.   gmp_printf ("%Zd\n", max);
  31.   /* Clear out variables */
  32.   mpz_clear (nb);
  33.   mpz_clear (deux);
  34.   mpz_clear (max);
  35.   mpz_clear (i);
  36.   return 0;
  37. }

mood
Publicité
Posté le 19-05-2008 à 09:57:51  profilanswer
 

n°1733547
ccp6128
Syntax error
Posté le 19-05-2008 à 10:02:23  profilanswer
 
n°1734437
soad0188
Posté le 20-05-2008 à 13:43:49  profilanswer
 

Merci bien.

n°1738539
soad0188
Posté le 28-05-2008 à 23:02:54  profilanswer
 

Salut,

 

je réutilise mon poste car j'ai une question certainement simple sur l'utilisation de :
void mpz_cdiv_r (mpz_t r, mpz_t n, mpz_t d);

 

en fait, mon reste r retourné est négatif, or un reste est positif :/

 

par exemple :

 
Code :
  1. gmp_printf ("a = %Zd\n", a);
  2. gmp_printf ("nb = %Zd\n", nb);
  3. gmp_printf ("reste = %Zd\n\n", reste);
  4. mpz_cdiv_r (reste, a, nb);
  5. gmp_printf ("a = %Zd\n", a);
  6. gmp_printf ("nb = %Zd\n", nb);
  7. gmp_printf ("reste = %Zd\n", reste);
 

retourne :

 


a = 1628413597910449
nb = 19
reste = 1

 

a = 1628413597910449
nb = 19
reste = -18

 

c'est pourtant simple, je ne vois pas comment simplifier encore plus mon probleme .. si vous avez une idée n'hésitez pas! merci

 


Message édité par soad0188 le 28-05-2008 à 23:03:23

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  lib GMP test while/if

 

Sujets relatifs
[Shell] test avec une variableTest sur champ obligatoire
VB6+MySQL : Test de doublonsVB6 + MySQL : Test de doublons
Association de while[Php] Afficher quelque chose dans une while(1)
script de test de charge[C] Problème de boucle While
[BASH] test si variable contient ./* [Résolu] 
Plus de sujets relatifs à : lib GMP test while/if


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR