3 entiers à mettre en ordre croissant c++
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

3 entiers à mettre en ordre croissant c++



  1. #1
    Olympe02

    Unhappy 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:
    #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
    grosmatou75001

    Re : 3 entiers à mettre en ordre croissant c++

    Sans avoir regardé le code je dois quand même faire une remarque: Si tu veux être bon en C(++) ou dans n'importe quel autre language il va bien falloir que tu apprenne 2 choses:
    1: rédiger d'abord un algorithme en FRANCAIS sur du PAPIER et le tester intensément À LA MAIN avant même de toucher le clavier de l'ordinateur et dans le cas présent surtout
    2: débugger ton programme. Soit tu prends un vrai debugger, il doit y en avoir intégrés dans les IDE majeurs, soit du travaille avec des printfs (enfin la truc correspondant en C++), des getchar etc. Tu demandes à ton programme de t'afficher des résultats intermédiaires, tu te crées la possibilité de modifier des valeurs intermédiaires et tu trouves ainsi l'erreur. Ca prendra peut-être plus de temps que de poster sur le forum mais il faudra bien passer par là. Le debuggage est une partie essentielle de la programmation...

    Désolé.

    PS: Si tu veux des réponses sur ton code explique donc ton algorithme.

  3. #3
    bisou10

    Re : 3 entiers à mettre en ordre croissant c++

    Je pense qu'il va surtout falloir que tu comprennes tout seul, parce que là c'est le niveau 0, et comme dit grosmatou75001, que tu sépares bien l'algo du codage.

  4. #4
    Olympe02

    Re : 3 entiers à mettre en ordre croissant c++

    en fait j'ai écris sur un papier,

    Je voudrais d'abord essayer quand a est plus grand après b ensuite c... J'ai réessayé avec a seulement:
    Code:
    #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;
    }

  5. A voir en vidéo sur Futura
  6. #5
    Chanur

    Re : 3 entiers à mettre en ordre croissant c++

    Bonjour,
    Citation Envoyé par Olympe02 Voir le message
    en fait j'ai écris sur un papier
    Alors ce serait nettement plus clair si tu nous recopiais ce que tu as écrit, parce que tes deux programmes sont juste absurdes .

    Par exemple, dans le deuxième,
    la séquence d=b, b=c, c=d; sert à intervertir b et c ;
    la séquence d=c, c=b,b=d; sert à ... intervertir b et c !

    Du coup le programme se résume à :
    Code:
    si a est le plus grand des trois
        si b différent de c
            intervertir b et c
    Ce n'est sûrement pas ce que tu veux faire ?

    Le premier est du même acabit :
    Code:
    si b est le plus petit des trois
        intervertir a et b
    sinon si c est le plus petit des trois
        intervertir a et c
    sinon si b est le plus grand des trois
        intervertir a et b
    sinon si b > c > a
        intervertir b et c
    donc tu vas au maximum intervertir deux des trois nombres, ce qui, à l'évidence, ne suffit pas à trier la liste ...
    Ce qui se conçoit bien s'énonce clairement ; et les mots pour le dire arrivent aisément.

  7. #6
    polo974

    Re : 3 entiers à mettre en ordre croissant c++

    Il faudrait faire un peu de recherche avant de poster,
    par exemple gogol( tri algorithme ) renvoie vers fr.wikipedia.org/wiki/Algorithme_de_tri
    là dedans, il y a des liens vers les algos simples (tri à bulle par exemple) et des trucs plus sioux...

    Il faut lire un peu en commençant par le simple...

    Sinon pour un tri de 3 éléments:
    trier les 2 premiers
    trier les 2 derniers
    retrier les 2 premiers (ben oui, on a peut être changé le 2ème élément depuis le premier tri...)
    Jusqu'ici tout va bien...

Discussions similaires

  1. Runge Kutta ordre 4 et équation différentielle du 2nd Ordre
    Par souimanga dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 08/04/2013, 18h02
  2. Spectrophotomètre + mesure par ordre croissant
    Par masar7 dans le forum Chimie
    Réponses: 4
    Dernier message: 27/11/2012, 22h03
  3. Les entiers naturels et les entiers relatifs
    Par Vousetesdesanimaux dans le forum Mathématiques du collège et du lycée
    Réponses: 10
    Dernier message: 28/05/2012, 16h12
  4. combinaisons possible ordre croissant aux loto
    Par invite95a5d9f5 dans le forum Mathématiques du collège et du lycée
    Réponses: 23
    Dernier message: 18/03/2011, 12h36
  5. ordre primaire/ordre secondaire
    Par ufoseeker dans le forum Physique
    Réponses: 0
    Dernier message: 16/08/2010, 14h35