IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Calcul du pgcd


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de YASIR
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Par défaut Calcul du pgcd
    Bonjour, je souhaite faire un programme qui calcule le pgcd de deux nombres entrés par l'utilisateur.
    A PRIORI l'algorithme fonctionne mais j'ai un probleme, des que j'entre les deux nombres et appuie sur entrée le prog se ferme automatiquement ??
    J'ai essayé de mettre une commande pour vider le buffer mais ca ne change rien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    #include <stdio.h>
     
    int main(void) {
      int n1, n2; /* les nombres a fournir par l'utilisateur */
     
      /* demande et lecture des nombres */
      printf("Introduire n1 : ");
      scanf("%d", &n1);
      printf("Introduire n2 : ");
      scanf("%d", &n2);
      while(getchar()!='\n');
      /* calcul du pgcd */
      for (; n1 != n2; (n1 > n2) ? (n1 -= n2) : (n2 -= n1));
     
      /* affichage du résultat */
      printf("PGCD : %d\n", n1);
     
    }
    Merci de votre aide

  2. #2
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    Salut,

    ajoute un system("PAUSE") à la fin, avant de sortir de ton main

  3. #3
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Citation Envoyé par coyotte507 Voir le message
    Salut,

    ajoute un system("PAUSE") à la fin, avant de sortir de ton main
    Pour la un million et une-ième fois, non seulement ça ne sert à rien (si on sait comment lancer une application console) mais en plus ce n'est pas portable.

  4. #4
    Membre confirmé Avatar de YASIR
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Par défaut
    Merci pour vos réponses ultra-rapides

  5. #5
    Membre confirmé Avatar de YASIR
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Par défaut Permutation
    j'aimerais désormais faire un programme qui permute 5 entiers aléatoirement mais je bloque je ne vois pas comment faire,
    auriez vous quelques pistes svp ? histoire que je puisse avancer

    merci

  6. #6
    Membre Expert
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 327
    Par défaut
    Salut

    Il existe les fonction srand() et rand(), mais tout ça est expliqué dans la

  7. #7
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par YASIR Voir le message
    j'aimerais désormais faire un programme qui permute 5 entiers aléatoirement mais je bloque je ne vois pas comment faire,
    auriez vous quelques pistes svp ? histoire que je puisse avancer

    merci
    J'avais posté ici une fonction appelée shuffle() qui faisait ça en utilisant l'algorithme de Fisher & Yates.


    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  8. #8
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    Pour lancer une application console :
    1. On lance la console
    2. On lance le programme (depuis la console)
    3. Lorsqu'on n'en a plus besoin, on ferme la console.

  9. #9
    Membre confirmé Avatar de YASIR
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Par défaut
    Dans la structure du menu de mon programme, j'ai donc suivi vos indications en appelant d'autre EXE par system("...exe"), ce qui marche tres bien.

    Je voudrais savoir comment si je suis dans un sous menu (donc sous programme) comment mettre une option pour revenir en arrière , au menu principal par exemple ou même au sous menu juste au dessus ?

    Je dois mettre system("...exe") ou y'at-il une fonction spéciale "revenir en arrière"?

  10. #10
    Membre confirmé Avatar de YASIR
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Par défaut
    Et sauriez - vous a quelle librairie appartient randperm ??

    merci

  11. #11
    Expert confirmé
    Avatar de Thierry Chappuis
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Mai 2005
    Messages
    3 499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Suisse

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Par défaut
    Citation Envoyé par YASIR Voir le message
    Et sauriez - vous a quelle librairie appartient randperm ??

    merci
    Matlab et son API C: Matlab C Math Library?

    Thierry
    "The most important thing in the kitchen is the waste paper basket and it needs to be centrally located.", Donald Knuth
    "If the only tool you have is a hammer, every problem looks like a nail.", probably Abraham Maslow

    FAQ-Python FAQ-C FAQ-C++

    +

  12. #12
    Membre confirmé Avatar de YASIR
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Par défaut randperm
    Citation Envoyé par Thierry Chappuis Voir le message
    Matlab et son API C: Matlab C Math Library?

    Thierry
    Merci Thierry, après une bonne lecture j'ai trouvé !

  13. #13
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 832
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 832
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par YASIR Voir le message
    Je voudrais savoir comment si je suis dans un sous menu (donc sous programme) comment mettre une option pour revenir en arrière , au menu principal par exemple ou même au sous menu juste au dessus ?

    Je dois mettre system("...exe") ou y'at-il une fonction spéciale "revenir en arrière"?
    Chaque fois que tu appelles un autre programme (par system()), l'ordi empile les appels. Si A appelle B qui appelle C, l'ordi conserve cet enchainement et quand C se termine, tu reviens à B et quand B se termine tu reviens à A
    Donc si t'as A qui appelle B et que dans B tu rappelles A, tu imagines que ton ordi ne tiendra pas la route longtemps !!!

    Pour revenir en arrière, il te suffit de quitter ton sous-menu. Si ton menu principal est bien programmé, il reprend la main et l'ensemble se comporte alors comme tu le souhaites sans effondrer la machine...

    PS! Tu devrais changer le titre du topic car il ne correspond plus à son contenu...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  14. #14
    Membre confirmé Avatar de YASIR
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Par défaut Structure de menus
    Citation Envoyé par Sve@r Voir le message
    Chaque fois que tu appelles un autre programme (par system()), l'ordi empile les appels. Si A appelle B qui appelle C, l'ordi conserve cet enchainement et quand C se termine, tu reviens à B et quand B se termine tu reviens à A
    Donc si t'as A qui appelle B et que dans B tu rappelles A, tu imagines que ton ordi ne tiendra pas la route longtemps !!!

    Pour revenir en arrière, il te suffit de quitter ton sous-menu. Si ton menu principal est bien programmé, il reprend la main et l'ensemble se comporte alors comme tu le souhaites sans effondrer la machine...

    PS! Tu devrais changer le titre du topic car il ne correspond plus à son contenu...
    Sve@r merci pour ta réponse, mais je n'ai pas saisi un truc, si par exemple je suis dans un menu où les deux actions possibles sont seulement d'accèder à nouveau à des sous-menus, comment faire pour que le programme se termine? comment quitter le sous-menu qui donne accès lui-même à ses propres sous-menus?

  15. #15
    Membre confirmé Avatar de YASIR
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Par défaut
    Et excuse moi, mais je ne sais pas comment changer le titre de la discussion, comment je dois - faire ?

    La j'ai seulement changer l'intitulé je crois...
    Merci

  16. #16
    Membre confirmé Avatar de YASIR
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Par défaut
    J'ai réussi en introduisant une variable fin!

Discussions similaires

  1. Réponses: 5
    Dernier message: 22/11/2018, 07h11
  2. [WD12] Calcul du PGCD de deux nombres
    Par orditosh dans le forum WinDev
    Réponses: 10
    Dernier message: 15/04/2009, 17h39
  3. Calcul de PGCD et PPCM
    Par Anas.sellami dans le forum Pascal
    Réponses: 5
    Dernier message: 12/04/2008, 11h09
  4. Calcul du PGCD avec les entiers de Peano
    Par patrick974 dans le forum Prolog
    Réponses: 12
    Dernier message: 30/08/2007, 06h57
  5. Algorithme permettant de calculer le PGCD de deux nombres
    Par zeyd dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 25/11/2005, 20h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo