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

  1. #1
    Nouveau membre du Club Avatar de YASIR
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Points : 25
    Points
    25
    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

    The computer has the intelligence of anyone who uses it


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

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

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

  3. #3
    Expert éminent
    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 : 38
    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
    Points : 8 389
    Points
    8 389
    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.

  4. #4
    Expert éminent
    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 : 38
    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
    Points : 8 389
    Points
    8 389
    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.

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

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

    The computer has the intelligence of anyone who uses it


  6. #6
    Nouveau membre du Club Avatar de YASIR
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Points : 25
    Points
    25
    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

    The computer has the intelligence of anyone who uses it


  7. #7
    Membre expérimenté
    Avatar de coyotte507
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    1 327
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

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

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

  8. #8
    Nouveau membre du Club Avatar de YASIR
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Points : 25
    Points
    25
    Par défaut
    merci coyotte, je vais voir ca tout de suite!!

    The computer has the intelligence of anyone who uses it


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

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Points : 25
    Points
    25
    Par défaut menu
    Et sauriez vous comment faire par exemple si jai un menu

    1. ...
    2.
    3.

    s'il choisit une des options quelle est la fonction pour ouvrir une nouvelle fenetre DOS avec un nouveau sous menu

    1.1
    1.2
    ...

    The computer has the intelligence of anyone who uses it


  10. #10
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    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 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par YASIR Voir le message
    Et sauriez vous comment faire par exemple si jai un menu

    1. ...
    2.
    3.

    s'il choisit une des options quelle est la fonction pour ouvrir une nouvelle fenetre DOS avec un nouveau sous menu

    1.1
    1.2
    ...
    Ton sous-menu est un second programme C (par exemple "sousMenu.exe") et ton premier programme appelle system("souSmenu.exe X") (X étant une valeur que le second programme saura interpréter pour afficher le bon sous-menu correspondant)
    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]

  11. #11
    Nouveau membre du Club Avatar de YASIR
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Points : 25
    Points
    25
    Par défaut randperm()
    merci beaucoup et pourriez vous me dire la syntaxe pr utiliser randperm()

    int p,n=8;
    p = randperm(n);

    de cette manière je n'y arrive pas il me di undefined reference to randperm, je dois linker une librairie au projet?

    The computer has the intelligence of anyone who uses it


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

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Points : 25
    Points
    25
    Par défaut
    ou bien est-ce ma syntaxe qui n'est pas bonne? faut-il déclarer la fonction, de quelle manière svp?

    The computer has the intelligence of anyone who uses it


  13. #13
    Expert éminent sénior

    Avatar de snake264
    Homme Profil pro
    Datascientist chez Leboncoin
    Inscrit en
    Novembre 2006
    Messages
    2 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Datascientist chez Leboncoin
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2006
    Messages : 2 914
    Points : 13 312
    Points
    13 312
    Par défaut
    Ceci est un très bon tuto sur les nombres aléatoires en C: http://nicolasj.developpez.com/articles/libc/hasard/
    Vous pouvez aller voir mes tutos et mes critiques: ici
    Ainsi que mon: blog

    Je ne répondrai à aucune question technique par MP les forums sont présents pour ça

    c'est très intelligent un ordinateur: "Keyboard ERROR. No keyboard Connected. Press any key to continue..."

  14. #14
    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 : 47
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    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++

    +

  15. #15
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    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 689
    Points : 30 983
    Points
    30 983
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par YASIR Voir le message
    de cette manière je n'y arrive pas il me di undefined reference to randperm, je dois linker une librairie au projet?
    En général c'est à faire chaque fois que tu utilises une fonction qui n'appartient pas à la librairie standard. Par exemple pour utiliser sqrt() il te faut lier la librairie libm qui contient le code de sqrt. Donc si randperm vient d'une librairie exotique, il te faut rapatrier la librairie et la lier au projet.
    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]

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

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Points : 25
    Points
    25
    Par défaut
    Merci beaucoup Thierry, ton prog me convient parfaitement.

    The computer has the intelligence of anyone who uses it


  17. #17
    Nouveau membre du Club Avatar de YASIR
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2008
    Messages : 101
    Points : 25
    Points
    25
    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"?

    The computer has the intelligence of anyone who uses it


  18. #18
    Nouveau membre du Club Avatar de YASIR
    Profil pro
    Inscrit en
    Février 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

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

    merci

    The computer has the intelligence of anyone who uses it


  19. #19
    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 : 47
    Localisation : Suisse

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

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 499
    Points : 5 360
    Points
    5 360
    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++

    +

  20. #20
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 689
    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 689
    Points : 30 983
    Points
    30 983
    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]

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