Pgcd

Bonjour, j'ai un soucis avec la boucle de mon programme lorsque je met 0 pour fermer le programme eh bien mon programme recommence.

#include <stdio.h>
#include <conio.h>
int main(void)
{
while (1)
{
int a,b,pgcd;
printf ("Donner A : \n");
scanf ("%d",&a);
printf ("\nDonner B : \n");
scanf ("%d",&b);
do
{
if(a>b)
a=a-b;
else
b=b-a;
}
while(a!=b);
pgcd=a;
printf (" \nLe PGCD est : %d\n",pgcd);
scanf ("%c", &pgcd);
{
printf("Voulez-vous recommencer ? Oui=1 Non=0 \n");
scanf ("%c", &a);
}
}
getch();
return 0;
}

5 réponses

  1. Modérateur
    C'est normal, tu ne demandes jamais à ta boucle de s'arrêter !

    Rajoutes if (a=='0') break; après scanf ("%c", &a);
    0
    1. ba en fait je savais pas comment l'arrêter mais merci tu m'a bien aider ^^
      0
      1. et jai un pb pour un autre programme niveau boucle lol
        Si on suis ce que tu as mis ca devrais marché or ca ne marche pas =/

        #include <stdio.h>
        #include <conio.h>
        int main(void)
        {
        while (1)
        {
        int a;
        int asciis = 115;
        int asciia = 97;
        int asciil = 108;
        int asciiu = 117;
        int asciit = 116;
        int ascii = 45;
        int asciiV = 86;
        int asciiO = 79;
        int asciiU = 85;
        int asciiS = 83;
        printf ("Veuillez saisir la valeur suivante : 119 \n\n");
        scanf("%d", &a);
        while (a!= 119);
        puts("\nToutes mes felicitations !!! \n");
        printf("%c", asciis);
        printf("%c", asciia);
        printf("%c", asciil);
        printf("%c", asciiu);
        printf("%c", asciit);
        printf("%c", ascii );
        printf("%c", asciiV);
        printf("%c", asciiO);
        printf("%c", asciiU);
        printf("%c", asciiS);
        {
        printf("\n\nVoulez-vous recommencer ? OUI=1 ou NON=0 \n\n");
        scanf("%d", &a);
        if (a=='0') break;
        }
        }
        getch();
        return 0;
        }
        0
        1. Modérateur
          Le problème ici c'est le while (a!= 119) il faut lui associer un do avant

          do
          {
              printf ("Veuillez saisir la valeur suivante : 119 \n\n"); 
              scanf("%d", &a); 
          }
          while (a!= 119);
          0
      2. ba j'ai tjs le meme probleme =/ lorsque je met 0 la boucle continu
        0
        1. a c'est bon j'ai trouvé. Merci beaucoup de l'aide que tu m'a apporté =)
          0