Algorithme d'euclide

Résolu
dOsSpr0uTosS Messages postés 90 Date d'inscription dimanche 22 mai 2005 Statut Membre Dernière intervention 1 janvier 2006 - 10 déc. 2005 à 00:16
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 - 10 déc. 2005 à 14:55
salut à tous,
je debute en C++(mais alors vraiment c'est à dire que j'ai commencer y'a une semaine et j'ai pas appris grand chose ...)
et donc pour m'amuser j'ai commencer a coder l'algorithme d'euclide
bon pour l'instant il est tout simple mais en théorie il devrait marcher mais vu que je ne connazis pas très bien le C++ j'ai quelques difficultés:
quand je lance le programme, il demande les deux nombre, je les entre puis il charge,il charge et il plante :s
voici le code:
#include <cstdlib>
#include

using namespace std;

int main(int argc, char *argv[])
{
debut:;
long v1;
long v2;
long v3;
long v4;

printf("entrez les deux nombres dont vous cherchez le PGCD\n");
scanf("%ld%ld",&v1,&v2);
do
{
v3 = v1 % v2;

v4 = v2 % v3;
v4=v3;
v1=v2;
v2=v3;
}
while(v4!=0);

printf("le PGDC de ces deux nombres est %ld\n",v4);
goto debut;

system("PAUSE");
return EXIT_SUCCESS;
}
dans la partie
v4=v3;
v1=v2;
v2=v3;
je voudrais enfaite que les variable prennent les nouvelles valeur avant de recommencer la boucle sans quoi elle serait sans fin (la boucle ^^)
je pense que mon erreur vient de là ...
merci d'éviter de me donner le ,code source directement d'un algorithme d'euclide parce que ca enlèverait tout le plaisir
voili merci d'avance :D

5 réponses

cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
10 déc. 2005 à 04:30
#include <cstdlib>

#include



using namespace std;



int main(int argc, char *argv[])

{

int NbrToDiv1, NbrToDiv2, Quotient, Reste;

cout << "Entrer les chiffres : " << endl;

cin >> NbrToDiv1;

cin >> NbrToDiv2;



while(Reste != 0)

{

Reste = NbrToDiv1 % NbrToDiv2;

Quotient = NbrToDiv1 / NbrToDiv2;



cout << NbrToDiv1
<< " = " << Quotient << "*" << NbrToDiv2
<< "+" << Reste << endl;



NbrToDiv1 = NbrToDiv2;

NbrToDiv2 = Reste;

}



cout << "\n\nLe PGCD est le dernier reste non nul !" << endl;

system("PAUSE");

return EXIT_SUCCESS;

}





% demande des entiers pas des long
if(!Meilleur("Joky")) return ERREUR;<
3
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
10 déc. 2005 à 12:49
On aurait intérêt à vérifier qu'aucun des nombres n'est nul
0
dOsSpr0uTosS Messages postés 90 Date d'inscription dimanche 22 mai 2005 Statut Membre Dernière intervention 1 janvier 2006
10 déc. 2005 à 13:53
merci pour votre aide mais vous auriez pas un tutos pour les cout cin endl..
par e que j'connais pas du tout ...
0
dOsSpr0uTosS Messages postés 90 Date d'inscription dimanche 22 mai 2005 Statut Membre Dernière intervention 1 janvier 2006
10 déc. 2005 à 14:11
voila comme j'y connaissais rien eu cout,cin et endl j'ai changer l'code pour qu'il me soit plus comprehensible:
#include <cstdlib>
#include

using namespace std;

int main(int argc, char *argv[])
{
debut:;
int v1, v2, v3, v4;
printf("entrez les deux nombres dont vous voulez le PGCD\n");
scanf("%ld%ld",&v1,&v2);

while(v4 != 0)
{
v4 = v1 % v2;
v3 = v1 / v2;

printf("%ld = %ld * %ld + %ld\n",v1,v3,v2,v4);

v1 = v2;
v2 = v4;
}

printf("le PGCD est le dernier reste non nul :D\n");
goto debut;
system("PAUSE");
return EXIT_SUCCESS;
}
voila merci beaucoup pour votre aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Joky Messages postés 1787 Date d'inscription lundi 22 novembre 2004 Statut Membre Dernière intervention 31 janvier 2009 2
10 déc. 2005 à 14:55
cout et cin sont l'équivalent en C++ de printf et scanf en C
Et comme tu faisais du C++, autant le faire partout :p


if(!Meilleur("Joky")) return ERREUR;<
0
Rejoignez-nous