Partage
  • Partager sur Facebook
  • Partager sur Twitter

Programme : Algorithme d'Euclide

A voir !

    15 janvier 2006 à 10:48:46

    Voila, voila !
    J'ai créer un programme qui calcul le Plus Grand Commun Diviseur de 2 nombres !
    Pour ceux qui sont en classe de 5ème, c'est très utile !
    Les lignes de calculs sont écrits ! Tout est détaillé !
    Bon, pour ceux à qui çà interresse, voici le lien pour le télécharger :
    http://berlirpg.free.fr/Algorithme_d_Euclide.exe


    Pour ceux qui veulent voir le code source :







    #include <stdio.h>
    #include <stdlib.h>

    int main(int argc, char *argv[])
    {
       
      long un, deux, resultat, reste, reste1, reste2, quotient,debut1, debut2, a, b, c, d, e;
      un = 1;
      deux = 1;
      resultat = 1;
      reste = 1
      quotient = 1;
      reste1 = 1;
      reste2 = 1;
      debut1 = un;
      debut2 = deux;
     
      //Récupérage des deux nombres pour trouver le PGCD
      printf("BERLI PGCD 1.0              pseudo du createur du programme : berli8888\n");
      printf("prenom et nom du createur : Libert KHE\n\n\n");
      printf("Ce programme permet de calculer rapidement le PGCD de deux nombres.\n");
      printf("Si le reste  (le dernier chiffre tout a droite) = 0 alors le PGCD est egal\n");
      printf("au reste de la ligne du dessus !\n");
      printf("Ce programme affiche maximum les 7 premieres lignes de calcul.\n");
      printf("Si vous constatez un bug du programme, faites un capture d'ecran et\n");
      printf("joignez le a un e-mail et envoyer le moi a cette adresse :\n");
      printf("berli888@hotmail.fr\n\n\n");
      printf("**************************************************************************\n");
      printf("Les nombres dont vous cherchez le PGCD doivent etre compris entre :\n");
      printf("-2 147 483 647    et    2 147 483 647\n");
      printf("**************************************************************************\n\n\n\n");
     
     
      printf("Entrez le 1er nombre qui est plus grand par rapport a l'autre :");
      scanf("%ld", &un);
      printf("Entrez le 2eme nombre qui est plus petit par rapport a l'autre :");
      scanf("%ld", &deux);
      debut1 = un;
      debut2 = deux;
      printf("Calcul en cours ... \n\n\n\n");
      //calcul
      quotient = ceil(un / deux);
      a = quotient * deux;
      reste = un - a;
     
     
      //on affiche une ligne de calcul
      printf("%ld = %ld X %ld + %ld\n", un, quotient, deux, reste);
     
      if (reste == 0) // Si reste = 0
    {
      printf ("Le PGCD de %ld et de %ld est %ld\n",debut1, debut2, deux);
      system("pause");
      return 0;
    }
    else // Sinon...
    {
      printf ("\n");
    }
     
     
     
        //calcul
      quotient = ceil(deux / reste);
      a = quotient * reste;
      reste1 = deux - a;
     
     
     
     
     
     
     
      //on affiche une ligne de calcul
      printf("%ld = %ld X %ld + %ld\n", deux, quotient, reste, reste1);
     
     
        if (reste1 == 0) // Si reste = 0
    {
      printf ("Le PGCD de %ld et de %ld est %ld\n",debut1, debut2, reste);
      system("pause");
      return 0;
    }
    else // Sinon...
    {
      printf ("\n");
    }
     
     
     
      //calcul
      quotient = ceil(reste / reste1);
      a = quotient * reste1;
      reste2 = reste - a;
     
     
     
     
     
      //on affiche une ligne de calcul
      printf("%ld = %ld X %ld + %ld\n", reste, quotient, reste1, reste2);
     
     
        if (reste2 == 0) // Si reste = 0
    {
      printf ("Le PGCD de %ld et de %ld est %ld\n",debut1, debut2, reste1);
      system("pause");
      return 0;
    }
    else // Sinon...
    {
      printf ("\n");
    }
     
     
      //calcul
      quotient = ceil(reste1 / reste2);
      a = quotient * reste2;
      reste = reste1 - a;
     
     
     
     
        //on affiche une ligne de calcul
      printf("%ld = %ld X %ld + %ld\n", reste1, quotient, reste2, reste);
     
     
     
        if (reste == 0) // Si reste = 0
    {
      printf ("Le PGCD de %ld et de %ld est %ld\n",debut1, debut2, reste2);
      system("pause");
      return 0;
    }
    else // Sinon...
    {
      printf ("\n");
    }
     
     
     //----------------- suplement ---------------------
     
     //calcul
      quotient = ceil(reste2 / reste);
      a = quotient * reste;
      un = reste2 - a;
     
     
     
     
        //on affiche une ligne de calcul
      printf("%ld = %ld X %ld + %ld\n", reste2, quotient, reste, un);
     
          if (un == 0) // Si reste = 0
    {
      printf ("Le PGCD de %ld et de %ld est %ld\n",debut1, debut2, reste);
      system("pause");
      return 0;
    }
    else // Sinon...
    {
      printf ("\n");
    }



     //-----------------IIIIIIIIIIIIIIIIIIIIIII suplement IIIIIIIIIIIIIIIIIIIIIIIii---------------------
     
     //calcul
      quotient = ceil(reste / un);
      a = quotient * un;
      reste2 = reste - a;
     
     
     
     
        //on affiche une ligne de calcul
      printf("%ld = %ld X %ld + %ld\n", reste, quotient, un, reste2);
     
          if (reste2 == 0) // Si reste = 0
    {
      printf ("Le PGCD de %ld et de %ld est %ld\n",debut1, debut2, un);
      system("pause");
      return 0;
    }
    else // Sinon...
    {
      printf ("\n");
    }








     //-----------------IIIIIIIIIIIIIIIIIIIIIII suplement33333333 IIIIIIIIIIIIIIIIIIIIIIIii---------------------
     
     //calcul
      quotient = ceil(un / reste2);
      a = quotient * reste2;
      reste = un - a;
     
     
     
     
        //on affiche une ligne de calcul
      printf("%ld = %ld X %ld + %ld\n", un, quotient, reste2, reste);
     
          if (reste2 == 0) // Si reste = 0
    {
      printf ("Le PGCD de %ld et de %ld est %ld\n",debut1, debut2, reste2);
      system("pause");
      return 0;
    }
    else // Sinon...
    {
      printf ("\n");
    }
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     

      system("PAUSE");     
      return 0;
    }



    Vous pouvez aussi donner votre avis !
    • Partager sur Facebook
    • Partager sur Twitter
      15 janvier 2006 à 11:14:58

      Bon, ça reste le PGCD hein, t'emballes pas ^^

      Nan, chuis méchant, c'est pas mal, mais essayes déjà de regrouper en plusieurs fonction!

      Le C est un langage FONCTIONNEL!

      et puis pourquoi tu fait watmillions de printf au début?
      • Partager sur Facebook
      • Partager sur Twitter
        15 janvier 2006 à 11:18:41

        Bin, c'est pour expliquer le porgramme et pour mettre un générique.

        Je n'y comprends rien aux fonctions pour l'instant !

        Tu sais, je n'ai que 14 ans, je suis pas pressé pour tout connaitre du C !
        • Partager sur Facebook
        • Partager sur Twitter
          15 janvier 2006 à 11:41:45

          Tu pourrais mettre une boucle quand même... ton code est un peu long.
          PS : On s'en fout de l'âge :p
          Sinon c'est bien ;)
          EDIT : j'en ai fait un aussi d'algorithme d'Euclide mais je te passerai pas le code :diable: ou pas tout de suite ... essayes d'abord d'améliorer le tien tout seul :p
          • Partager sur Facebook
          • Partager sur Twitter
            15 janvier 2006 à 12:34:20

            Maintenant, voici mon programme mais c'est la version 1.1 !

            Peut ecrire les 35 premiers lignes de calculs !
            http://berlirpg.free.fr/Algorithme_d_Euclide.exe
            • Partager sur Facebook
            • Partager sur Twitter
              15 janvier 2006 à 12:47:42

              Hum j'ai pas mis les étapes de calcul ...
              #include <stdio.h>
              #include <stdlib.h>
              #include <math.h>
              int main(int argc, char *argv[])
              {
                long chiffre1, chiffre2, reste1=0;
                printf("PGCD \n \nDonnes moi le premier nombre  :  \n");
                scanf("%ld",&chiffre1);
                printf("\nDonnes moi le second nombre : \n");
                scanf("%ld",&chiffre2);
               
               do  // Début boucle
                {
                       
                     
              if (chiffre1==chiffre2)
              {
                        printf("PGCD : 1\n");
                           break;
                           }                                                                           
              if (chiffre1>chiffre2)
              {
              reste1=chiffre1%chiffre2;


              if(reste1==0)
                           {
                           printf("PGCD : %ld\n",chiffre2);
                           break;
                           }
                           }
              if(chiffre2>chiffre1)
              {

              reste1=chiffre2%chiffre1;

                if(reste1==0)
                           {
                           printf("PGCD : %ld\n",chiffre1);
                           break;
                           }
                           }         
                           
                         
                           
                           
                            chiffre1=chiffre2%reste1;
                            if(chiffre1==0)
                            {
                            printf("PGCD : %ld\n",reste1);
                            break;
                            }
                           
                           chiffre2=reste1%chiffre1;
                           if(chiffre2==0)
                           {
                            printf("PGCD : %ld\n",chiffre1);
                            break;
                            }
                           
                            reste1=chiffre1%chiffre2;
                           if(reste1==0)
                           {
                                       
                           printf("PGCD : %ld\n",chiffre2);
                           
                           break;
                           }
                           
               
                            }
                            while(reste1!=0); // fin boucle
                                           
                system("PAUSE");     
                return 0;
              }

              EDIT : Par contre mon PGCD marche par exemple pour 2 et 4 ( chiffre 1 < chiffre2 )
              Code mal indenté je sais :euh:
              • Partager sur Facebook
              • Partager sur Twitter
                15 janvier 2006 à 12:54:21

                J'ai tout recorigé, mon programme ecrit les lignes de calculs (pratique si on veut rendre des devoirs sur le PGCD au prof !) Et maintenant c'est le meme que toi mais en 1000 fois mieux !


                :p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p:p
                • Partager sur Facebook
                • Partager sur Twitter
                  15 janvier 2006 à 12:55:56

                  hum me souviens plus trop de comment on utilise le PGCD mais il me semble que le nombre trouvé est toujours positif non ? donc tu peux augmenter la marge des nombres qu'on entre avec un unsigned
                  • Partager sur Facebook
                  • Partager sur Twitter
                    15 janvier 2006 à 12:56:57

                    Je pouvais beaucoup plus simple mais j'ai préféré montrer les lignes de calculs !
                    D'accord je vais essayer !
                    • Partager sur Facebook
                    • Partager sur Twitter
                      15 janvier 2006 à 13:00:24

                      Mille fois mieux ? :lol:
                      Par contre essayes vraiment de faire une boucle... :euh:
                      • Partager sur Facebook
                      • Partager sur Twitter
                        15 janvier 2006 à 13:03:26

                        J'ai essayé mais après y a un bug, cela n'affiche que quelques lignes de calculs et ma phrase qui explique quel est le PGCD n'apparait pas !

                        Donc je préfère sans les boucles ! :-°
                        • Partager sur Facebook
                        • Partager sur Twitter
                          15 janvier 2006 à 13:06:47

                          Voilà j'ai mis les étapes :
                          #include <stdio.h>
                          #include <stdlib.h>
                          #include <math.h>
                          int main(int argc, char *argv[])
                          {
                            unsigned long chiffre1, chiffre2, reste1=0;
                            printf("PGCD \n \nDonnes moi le premier nombre  :  \n");
                            scanf("%ld",&chiffre1);
                            printf("\nDonnes moi le second nombre : \n");
                            scanf("%ld",&chiffre2);
                           
                           do
                            {
                                   
                                 
                          if (chiffre1==chiffre2)
                          {
                                    printf("PGCD : 1\n");
                                       break;
                                       }                                                                           
                          if (chiffre1>chiffre2)
                          {
                          reste1=chiffre1%chiffre2;
                           printf("%d x %d + %d\n", chiffre1, chiffre2,  reste1);

                          if(reste1==0)
                                       {
                                       printf("PGCD : %ld\n",chiffre2);
                                       break;
                                       }
                                       }
                          if(chiffre2>chiffre1)
                          {

                          reste1=chiffre2%chiffre1;
                           printf("%d x %d + %d\n", chiffre2, chiffre1,  reste1);

                            if(reste1==0)
                                       {
                                       printf("PGCD : %ld\n",chiffre1);
                                       break;
                                       }
                                       }         
                                       
                                     
                                       
                                       
                                        chiffre1=chiffre2%reste1;
                                        printf("%d x %d + %d\n", chiffre2, reste1,  chiffre1);
                                        if(chiffre1==0)
                                        {
                                        printf("PGCD : %ld\n",reste1);
                                        break;
                                        }
                                       
                                       chiffre2=reste1%chiffre1;
                                        printf("%d x %d + %d\n", reste1, chiffre1,  chiffre2);
                                       if(chiffre2==0)
                                       {
                                        printf("PGCD : %ld\n",chiffre1);
                                        break;
                                        }
                                       
                                        reste1=chiffre1%chiffre2;
                                         printf("%d x %d + %d\n", chiffre1, chiffre2,  reste1);
                                       if(reste1==0)
                                       {
                                                   
                                       printf("PGCD : %ld\n",chiffre2);
                                       
                                       break;
                                       }
                                       
                           
                                        }
                                        while(reste1!=0);
                                                       
                            system("PAUSE");     
                            return 0;
                          }


                          Mille fois mieux maintenant ?
                          ( je sens une certaine rivalité :-° )
                          • Partager sur Facebook
                          • Partager sur Twitter
                            15 janvier 2006 à 13:08:39

                            *ù^$ù*$ùù$^*ù*%µ*ù*ùù !!!!!!!! J'ai perdu mon code source de mon programme !
                            :colere::colere::colere::colere::colere::colere::colere::colere::colere::colere::colere:
                            J'suis trop bête !!
                            p****n de merde !
                            • Partager sur Facebook
                            • Partager sur Twitter
                              15 janvier 2006 à 13:10:42

                              Bah t'as posté sur le forum heureusement ! T'as pas tout perdu :-°
                              Merci pour le unsigned long ^^
                              • Partager sur Facebook
                              • Partager sur Twitter
                                15 janvier 2006 à 13:14:13

                                Tu parles, j'avais posté la version 1.0 : celui qui est pourrite !

                                Qui connait un porgramme pour décompiler un fichier .exe ?

                                Il faut que je retrouve ma source de mon programme version 1.1 !
                                Y'avait des modifications majeurs !
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  15 janvier 2006 à 13:15:34

                                  Tu peux pas décompiler un .exe il a été mis en binaire c'est fini :-°
                                  Mais t'as pas mis tellement de temps entre le post de la 1.0 et 1.1 tu pourrais la refaire.
                                  • Partager sur Facebook
                                  • Partager sur Twitter
                                    15 janvier 2006 à 13:18:05

                                    Si, j'y ai passé 2 heures !
                                    J'ai trop la flemme de tout refaire et j'ai fait des correctifs dont je ne me rappelle plus !
                                    :(
                                    • Partager sur Facebook
                                    • Partager sur Twitter
                                      15 janvier 2006 à 13:19:44

                                      Bienfait :D lol je plaisante :p sa m'ai arriver ^^ bah tu n'as plus qu'à tout refaire...
                                      • Partager sur Facebook
                                      • Partager sur Twitter
                                        15 janvier 2006 à 13:22:13

                                        (Yeah j'ai gagné ... :D ) Oh pauvre berli888 ... t'as qu'à commencer un autre projet :euh:
                                        • Partager sur Facebook
                                        • Partager sur Twitter
                                          15 janvier 2006 à 17:31:35

                                          j'ai plus court encore:


                                          #include <stdio.h>
                                          #include <stdlib.h>

                                          int main(int argc, char *argv[])
                                          {
                                           
                                            long n1,n2,tmp;
                                           
                                            printf("Tapez les deux nombres\n");
                                            scanf("%ld %ld",&n1,&n2);
                                           
                                             while (n1 % n2)
                                             {
                                             tmp = n2;
                                             n2 = n1 % tmp;
                                             n1 = tmp;
                                             }

                                            printf("PGCD = %ld\n",n2);
                                           
                                            system("PAUSE");     
                                            return 0;

                                          }


                                          :-°
                                          • Partager sur Facebook
                                          • Partager sur Twitter
                                            15 janvier 2006 à 17:32:12

                                            p'tite remarque :-°

                                            if (chiffre1==chiffre2)
                                            {
                                                      printf("PGCD : 1\n");
                                                         break;
                                                         } 

                                            Si chiffre1 est pareil que chiffre2, ça veut dire que le plus grand commun diviseur est eu même.
                                            ex: chiffre1=90, chiffre2=90. Donc, leurs plus grand commun diviseur est 90, et pas 1 :p
                                            • Partager sur Facebook
                                            • Partager sur Twitter
                                              15 janvier 2006 à 17:52:58

                                              Juste pour completer, une petite fonction qui calcule le ppcm (plus petit commun multiple)
                                              Le code ci-dessous résume les deux fonctions (ppcm et pgcd)


                                              #include <stdio.h>
                                              #include <stdlib.h>

                                              long pgcd(long n1, long n2)
                                              {
                                                  long tmp;

                                                  while (n1 % n2)
                                                  {
                                                  tmp = n2;
                                                  n2 = n1 % tmp;
                                                  n1 = tmp;
                                                  }
                                                 
                                                 return n2;
                                                 
                                              }

                                              long ppcm(long n1, long n2)
                                              {
                                                  return n1 * n2 / pgcd(n1,n2);
                                              }


                                              int main(int argc, char *argv[])
                                              {
                                               
                                                long n1,n2;
                                               
                                                printf("Tapez les deux nombres\n");
                                                scanf("%ld %ld",&n1,&n2);
                                               
                                                printf("PGCD = %ld\n",pgcd(n1,n2));
                                                printf("PPCM = %ld\n",ppcm(n1,n2));
                                               
                                                system("PAUSE");     
                                                return 0;
                                               
                                              }
                                              • Partager sur Facebook
                                              • Partager sur Twitter
                                                16 janvier 2006 à 10:56:40

                                                Fiou ça c'est du code court :lol:
                                                Par contre je pige pas trop ton while tu peux m'expliquer ? :euh:
                                                • Partager sur Facebook
                                                • Partager sur Twitter
                                                  16 janvier 2006 à 16:11:24

                                                  c'est simple
                                                  tant que le reste de la division de n1 par n2 est != 0 :
                                                  on donne a n1 la valeur de n2
                                                  on donne a n2 la valeur du reste de n1 par n2
                                                  etc...

                                                  un exemple
                                                  je rentre les nombres 8 et 16

                                                  n1 n2
                                                  8 % 16 = 8
                                                  8 % 8 = 0
                                                  donc pgcd(8,16) = 8

                                                  autre exemple pour 36 et 8

                                                  n1 n2
                                                  36 % 8 = 4
                                                  8 % 4 = 0
                                                  donc pgcd(36,8) = 4
                                                  • Partager sur Facebook
                                                  • Partager sur Twitter
                                                    16 janvier 2006 à 18:20:37

                                                    Remarque 1 : Le pgcd de deux nombre est un entier donc n'utilise pas de float !!!
                                                    Remarque 2 : Ton code fait exactement 242 lignes, c'est un peu beaucoup pour calculer un pgcd non ? Sache que sauter dix lignes entre chaque instruction n'optimise pas ton programme, ça ne le rend que plus illisible.
                                                    Remarque 3 : Ce code est plus simple :
                                                    int pgcd(int a, int b)
                                                    {
                                                        if(a-b*(a/b)==0)
                                                        {
                                                            return b;
                                                        }
                                                        else
                                                        {
                                                            return pgcd(b,a-b*(a/b));
                                                        }
                                                    }
                                                    • Partager sur Facebook
                                                    • Partager sur Twitter
                                                      16 janvier 2006 à 21:59:33

                                                      Ben moi j'ai essaye d'en fair un de mon cote mais il se passe un truc paranormal ^^ (enfin si surement logique mais que je n'arrive pas a comprendre avec mes moyens actuels :p ) Voila mon code:


                                                      #include <stdio.h>
                                                      #include <stdlib.h>

                                                      int calcul(int nombre1, int nombre2);

                                                      int main(int argc, char *argv[])
                                                      {
                                                        int nombre1 = 0, nombre2 = 0, pgcd = 0;
                                                        printf("\n Entrez les nombres dont vous voulez avoir le PGCD:");
                                                        printf("\n nombre 1: ");
                                                        scanf("%d", &nombre1);
                                                        printf(" nombre 2: ");
                                                        scanf("%d", &nombre2);
                                                        pgcd = calcul(nombre1, nombre2);
                                                        printf("\n Le PGCD de %d et %d est %d\n", nombre1, nombre2, pgcd);
                                                        system("PAUSE");
                                                        return 0;
                                                      }

                                                      int calcul(int nombre1, int nombre2)
                                                      {
                                                        int pgcd = 0;
                                                        while(pgcd = 0)// le pgcd de 2 nombres est au minimum 1, on ne risque donc pas la boucle infinie
                                                        {
                                                         if(nombre1 > nombre2 && nombre1 != 0 && nombre2 != 0)
                                                         {
                                                                    nombre1 = nombre1 % nombre2;
                                                         }
                                                         else if(nombre1 < nombre2 && nombre1 != 0 && nombre2 != 0)
                                                         {
                                                                    nombre2 = nombre2 % nombre1;
                                                         }
                                                         else if(nombre1 = 0)
                                                         {
                                                                    pgcd = nombre2;
                                                         }
                                                         else if(nombre2 = 0)
                                                         {
                                                                    pgcd = nombre1;
                                                         }
                                                         else // la c'est forcement que nombre1 = nombre2
                                                         {
                                                                    pgcd = nombre1;
                                                                    break;
                                                         }
                                                        }
                                                        return pgcd;
                                                      }



                                                      j'utilise la la methode de la division successive, que vous connaissez surement (et que je ne reexpliquerai pas ^^ ) mais mon probleme (pour le moment) vient du fait que une fois arrive à

                                                      while(pgcd = 0)// le pgcd de 2 nombres est au minimum 1, on ne risque donc pas la boucle infinie
                                                        {
                                                         if(nombre1 > nombre2 && nombre1 != 0 && nombre2 != 0)
                                                         {
                                                                    nombre1 = nombre1 % nombre2;
                                                         }
                                                         else if(nombre1 < nombre2 && nombre1 != 0 && nombre2 != 0)
                                                         {
                                                                    nombre2 = nombre2 % nombre1;
                                                         }
                                                         else if(nombre1 = 0)
                                                         {
                                                                    pgcd = nombre2;
                                                         }
                                                         else if(nombre2 = 0)
                                                         {
                                                                    pgcd = nombre1;
                                                         }
                                                         else // la c'est forcement que nombre1 = nombre2
                                                         {
                                                                    pgcd = nombre1;
                                                                    break;
                                                         }


                                                      ben j'ai l'impression qu'il zappe tout simplement cette boucle, car il renvoie systematiquement 0, et que si il effectuait la boucle, il ne pourrait pas renvoyer 0 car la condition pour fair cette boucle est que pgcd = 0, et meme si il l'effectuait, d'apres le calcul, c'est impossible que ca fasse 0 (un PGCD ne peut pas etre 0 a ma connaissance, puisqu'on ne peut tout simplement pas diviser par 0 dans les mathematiques classiques).
                                                      Voila j'aimerai que vous m'expliquiez pourquoi ca ne marche pas, et que vous me signialiez d'autres erreurs que j'aurai pu fair (et que j'ai surement faites ^^ ), enfin si vous pouviez eviter les truc du genre " c'est quoi ce noob!! ton code il pue la crotte de kangourou, meme ma grand mere fait des trucs mieux!!" ce serait sympa!

                                                      EDIT: ce n'est qu'une version d'essai pour m'amuser, elle est pas genial mais le principal reside dans les calculs!
                                                      • Partager sur Facebook
                                                      • Partager sur Twitter
                                                        16 janvier 2006 à 22:02:22

                                                        Voilà :
                                                        #include <stdio.h>
                                                        #include <stdlib.h>

                                                        int calcul(int nombre1, int nombre2);

                                                        int main(int argc, char *argv[])
                                                        {
                                                          int nombre1 = 0, nombre2 = 0, pgcd = 0;
                                                          printf("\n Entrez les nombres dont vous voulez avoir le PGCD:");
                                                          printf("\n nombre 1: ");
                                                          scanf("%d", &nombre1);
                                                          printf(" nombre 2: ");
                                                          scanf("%d", &nombre2);
                                                          pgcd = calcul(nombre1, nombre2);
                                                          printf("\n Le PGCD de %d et %d est %d\n", nombre1, nombre2, pgcd);
                                                          system("PAUSE");
                                                          return 0;
                                                        }

                                                        int calcul(int nombre1, int nombre2)
                                                        {
                                                          int pgcd = 0;
                                                          while(pgcd == 0)// le pgcd de 2 nombres est au minimum 1, on ne risque donc pas la boucle infinie
                                                          {
                                                           if(nombre1 > nombre2 && nombre1 != 0 && nombre2 != 0)
                                                           {
                                                                      nombre1 = nombre1 % nombre2;
                                                           }
                                                           else if(nombre1 < nombre2 && nombre1 != 0 && nombre2 != 0)
                                                           {
                                                                      nombre2 = nombre2 % nombre1;
                                                           }
                                                           else if(nombre1 == 0)
                                                           {
                                                                      pgcd = nombre2;
                                                           }
                                                           else if(nombre2 == 0)
                                                           {
                                                                      pgcd = nombre1;
                                                           }
                                                           else // la c'est forcement que nombre1 = nombre2
                                                           {
                                                                      pgcd = nombre1;
                                                                      break;
                                                           }
                                                          }
                                                          return pgcd;
                                                        }


                                                        Et les doubles = dans le while et les else if ils sont où ? :p
                                                        • Partager sur Facebook
                                                        • Partager sur Twitter
                                                          16 janvier 2006 à 22:07:33

                                                          Ah! Yes, ca marche! merci beaucoup! J'ai effectivement pense aux double =, mais comme j'ai essaye de les distribuer un peu au pif, ca a foire :p , enfin finalement mon code etait pas si mal que ca ^^
                                                          (enfin faudra que je revoi cette regle a propos des double = !)
                                                          • Partager sur Facebook
                                                          • Partager sur Twitter
                                                            16 janvier 2006 à 22:31:05

                                                            l'opérateur de comparaison est "==" et non "="
                                                            • Partager sur Facebook
                                                            • Partager sur Twitter

                                                            Programme : Algorithme d'Euclide

                                                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                                                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                                                            • Editeur
                                                            • Markdown