Ou est le problème ?

Résolu
baby3378 Messages postés 193 Date d'inscription mercredi 7 septembre 2005 Statut Membre Dernière intervention 8 juillet 2010 - 14 avril 2006 à 20:07
mogwai93 Messages postés 362 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 4 novembre 2023 - 14 avril 2006 à 20:23
bonjour,
Voila j'ai construit un prog qui permet d'avoir le PGCD de 2 nombres, tous se passe bien jusqu'a ce que windows me di que le programme a rencontré un problem et à besoin de fermer. Voici mon prog:


#include <cstdlib>
#include
#include <windows.h>
using namespace std;
int resultat;
int reste;
long nombre1;
long nombre;
long nombre2;
long diviseur;
long tempo;


int calcul()
{
if ( nombre1 < nombre2)

{

nombre = nombre2;
diviseur = nombre1;

}


if (nombre1 > nombre2)
{
nombre = nombre1;
diviseur = nombre2;
}

if (nombre1 == nombre2)

MessageBox( HWND_DESKTOP, "Vos 2 nombres sont identiques !", "_-=ERREUR=-_", MB_OK|MB_ICONERROR);


while (reste != 0)
{
//1er calcul
resultat = nombre / diviseur;
reste = nombre - (resultat * diviseur);

cout <<"\n\n\nLE caclul est : "<< nombre <<" divisé par " << diviseur <<" -----> est egal à "<< resultat <<" et il reste "<< reste<<"\n\n\n\n";;

//autres calc.
tempo = reste;
reste = diviseur;
diviseur = tempo;



//fin fonction calcul
}




}



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

while (1)
{
reste = 1;
cout <<"*****BIENVENU AU PGCD CALCULATOR*****\n\n\n->veuillez entrer les 2 nombres a calculer:\nnombre1 = ";
cin >>nombre1;
cout <<"nombre2 = ";
cin >> nombre2;

calcul();

if (reste == 0 )
{
cout <<"\n\n";
system ("pause");
}

}

return 0;
}



PS:ne faite pas trop attentions au fautes, ceci n'est qu'un prototype

1 réponse

mogwai93 Messages postés 362 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 4 novembre 2023
14 avril 2006 à 20:23
while (reste != 0)

{

//1er calcul

resultat = nombre / diviseur;

reste = nombre - (resultat * diviseur);




cout <<"\n\n\nLE
caclul est : "<< nombre <<" divisé par " << diviseur
<<" -----> est egal à "<< resultat <<" et il reste
"<< reste<<"\n\n\n\n";;



//autres calc.

tempo = reste;

reste = diviseur;

cout << "tempo = " << tempo << endl;

diviseur = tempo;

//fin fonction calcul

}





diviseur = 0

et reste != 0

d'où plantage car division par 0





explication :

resultat = nombre / diviseur;

reste = nombre - (resultat * diviseur);



--> reste nombre - (nombre * diviseur / diviseur) nombre - nombre = 0
3
Rejoignez-nous