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 :

3 entiers à mettre en ordre croissant c++


Sujet :

C++

  1. #1
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 10
    Par défaut 3 entiers à mettre en ordre croissant c++
    Bonsoir tout le monde ,

    Je suis perdu dans mon algorithme Pouvez-vous svp me donner des pistes ? Voilà c'est un exercice improviser par mon prof. En gros, je dois saisir 3 réels qui se met dans l’ordre croissant quelque soit le nombre que l'on a tapé...
    Voici ce que je dois tester:
    //1, 2, 3 (cela fonctionne) // 1, 3, 2 ( fonctionne pas) // 2, 1, 3 (fonctionne) // 2, 3, 1(fonctionne pas) // 3, 1, 2( fonctionne pas) // 3, 2, 1(fonctionne)

    C'est un technique vu en classe après je dois plus simplifier

    Voici mon code

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    #include <iostream>
     
    using namespace std;
     
    int main()
    {
        int a,b,c,d;
        cout << "Saisir 3 entiers" << endl;
        cin >> a >> b >> c;
        if (a>b && c>b)
        {
            d=b, b=a, a=d;
        }
        else if(a>c && b>c)
        {
            d=c, c=a, a=d;
        }
        else if(b>a && b>c)
        {
            d=b; b=a; a=d;
        }
        else if(b>c && c>a)
        {
            d=b, b=c, c=d;
        }
     
     
        cout << a << b << c;
        return 0;
    Merci d'avance
    Bonne soirée

  2. #2
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Par défaut
    Hello,

    Tu te compliques vraiment la vie avec tous tes tests. Si tu ne peux pas utiliser un conteneur trié (style std::set), exprime ce que tu veux faire clairement dans ton tri.

    En gros, tu souhaites que "a" soit inférieur à "b" et "b" soit inférieur à "c".
    Attention, il y a une petite subtilité que je n'ai pas dit dans la phrase du dessus.
    Pour info, tu n'as besoin que de faire que 3 tests.

    Bon courage!

  3. #3
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 10
    Par défaut
    J'ai essayé ceci en ayant a inférieur à b et c. Mais là j'ai trois variable et non 2.

    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
    20
    21
    22
    23
    #include <iostream>
     
    using namespace std;
     
    int main()
    {
        int a,b,c,d;
        cout << "Saisir 3 entiers" << endl;
        cin >> a >> b >> c;
        if(a>b && a>c)
        {
            if(b>c)
            {
                d=b, b=c, c=d;
            }
            if(c>b)
            {
                d=c, c=b,b=d;
            }
        }
        cout << a << b << c;
        return 0;
    }

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Par défaut
    Le problème ici, c'est que tu utilises deux conditions dans un seul if.
    En plus tu utilises le ET logique. Est-ce que tu as fait des opérations sur la logique binaire?

  5. #5
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 10
    Par défaut
    Citation Envoyé par darkman19320 Voir le message
    Le problème ici, c'est que tu utilises deux conditions dans un seul if.
    En plus tu utilises le ET logique. Est-ce que tu as fait des opérations sur la logique binaire?
    oui j'en ai fais !

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Par défaut
    Alors d'après toi que fais ton test:

    Avec a=3, b=2, c=1?

  7. #7
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 10
    Par défaut
    Citation Envoyé par darkman19320 Voir le message
    Alors d'après toi que fais ton test:

    Avec a=3, b=2, c=1?
    il va m'afficher en ordre décroissant 3 2 1 puisque a est plus grand que b et c... En fait moi je voulais faire que si a est plus alors que b et c. Puis dans une autre boucle montre que b est plus grand que c vis-versa.
    Après si b est plus grand que a et c...

  8. #8
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Par défaut
    Tu te compliques la vie: pourquoi tu as besoin de tester que b et plus grand que a? ou encore c plus grand que a ou b?

  9. #9
    Membre habitué
    Femme Profil pro
    Étudiant
    Inscrit en
    Septembre 2013
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2013
    Messages : 10
    Par défaut
    Citation Envoyé par darkman19320 Voir le message
    Tu te compliques la vie: pourquoi tu as besoin de tester que b et plus grand que a? ou encore c plus grand que a ou b?
    ben il se peut que je tape a le plus grand nombre ou b le plus grand nombre ou bien c'est c le plus grand....

    par ex si a est le plus grand alors b ou c est plus grand

  10. #10
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2010
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2010
    Messages : 517
    Par défaut
    Citation Envoyé par OlympeGeekette Voir le message
    par ex si a est le plus grand alors b ou c est plus grand
    Je crois que tu exprimes pas bien ton besoin. Dis à autre voix ce que tu veux, retransmet le sur papier et ensuite code le.

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 146
    Billets dans le blog
    4
    Par défaut
    Bonsoir,

    c'est vraiment un cas d'école et de l'algorithmie de base.
    Prend ton crayon et déroule.
    Dans l'idée, quelque chose comme ça devrait donner une piste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    a, b, c
    si a > b
    swap a b
    si a > c
    swap a c
    si b > c
    swap b c
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

Discussions similaires

  1. Réponses: 4
    Dernier message: 31/03/2012, 00h30
  2. mettre en ordre croissant
    Par David1259 dans le forum IHM
    Réponses: 2
    Dernier message: 30/12/2008, 14h15
  3. Tri par ordre croissant
    Par KinF dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 13/12/2008, 20h19
  4. Trier un tableau par ordre croissant
    Par Halleck dans le forum Algorithmes et structures de données
    Réponses: 15
    Dernier message: 01/11/2004, 00h04
  5. Ordonner ds l'ordre croissant de 2 champs confondus
    Par Coolbens dans le forum Langage SQL
    Réponses: 11
    Dernier message: 17/06/2003, 16h39

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