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 :

Afficher le plus grand


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 16
    Par défaut Afficher le plus grand
    Bonjour à tous,
    je suis un débutant en programmation. J'ai un petit souci. Je voulai faire un programme qui affiche le plus grand de deux nombre mais il ne fonctionne pas. Je travaille avec Code Blocks.

    Le programme que j'ai tapé est le suivant :

    ----------------------------------------------
    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
    #include <iostream>
     
    using namespace std;
     
    int main()
    {
        int Nombre1, Nombre2;                           // On declare les variables Resultat, Nombre1 et Nombre2
     
      printf("Entrez le nombre 1 : ");                          // Demande d'entrer le nombre 1
      scanf("%d", &Nombre1);
      printf("Entrez le nombre 2 : ");                         // Demande d'entrer le nombre 2
      scanf("%d", &Nombre2);
     
     
      if ( Nombre1 > Nombre2)
      printf ("Le plus grand est : Nombre 1");
     
    else if (Nombre1 < Nombre2);
     printf ("Le plus grand est : Nombre 2");
      else (Nombre1 == Nombre2)
      printf ("Les Nombre1 et Nombre2 sont égaux");
     
     
     
      return 0;
    ---------------------------------------

    merci beaucoup de votre aide

  2. #2
    Expert éminent
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 644
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 644
    Par défaut
    Salut,

    Déjà, il manque l'accolade fermante à la fin de la fonction main...

    En outre, il est préférable d'utiliser cout pour provoquer l'affichage et cin pour la lecture de l'entrée standard (le clavier, le plus souvent).

    En effet, printf et scanf sont des fonctions issues du C avantageusement remplacées par cin et cout et leurs opérateurs de flux respectif >> et <<.

    Enfin, même en C, la fonction scanf n'est absolument pas recommandée car elle est sujette à de nombreux problèmes
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #3
    Membre expérimenté Avatar de Dalini71
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2008
    Messages
    181
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2008
    Messages : 181
    Par défaut
    Sinon pour pour afficher le plus grand nombre, tu peux utiliser la fonction max() de la STL, tu gagneras quelques lignes de code, et c'est une bonne habitude à prendre en C++ que d'utiliser les algorithmes pré-faits

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    Bonjour,
    Le programme que tu proposes ne compile pas :
    • Il manque l'accolade fermante de main
    • Il manque un if à la dernière condition

    Ensuite, il y a un point-virgule en trop dans la ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    else if (Nombre1 < Nombre2);
    En se tenant à ce que tu proposes un code fonctionnant peut être celui-ci :
    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
    #include <cstdio>
    
    int main()
    {
       int Nombre1, Nombre2;                           // On declare les variables Resultat, Nombre1 et Nombre2
    
       printf("Entrez le nombre 1 : ");                          // Demande d'entrer le nombre 1
       scanf("%d", &Nombre1);
       printf("Entrez le nombre 2 : ");                         // Demande d'entrer le nombre 2
       scanf("%d", &Nombre2);
    
    
       if ( Nombre1 > Nombre2)
          printf ("Le plus grand est : Nombre 1");
       else if (Nombre1 < Nombre2)
          printf ("Le plus grand est : Nombre 2");
       else if(Nombre1 == Nombre2)
          printf ("Les Nombre1 et Nombre2 sont égaux");
       return 0;
    }
    Si ton objectif est d'apprendre le C, alors je te proposes de déplacer le message vers la rubrique C pour avoir des conseils plus pertinents.

    En revanche, si tu souhaites apprendre le C++, alors quelques remarques supplémentaires s'imposent pour que ton apprentissage parte sur de bonnes bases.

    Les flux : La STL (Standard Template Library) propose des objets qui te mâche le travail pour les entrées/sorties : ce sont les flux. Par mâcher le travail, il faut comprendre qu'il se charge de faire les bonnes allocations, libérations, conversion, gestion des erreurs, etc. permettant d'écrire et de lire sur des fichiers ou sur la console sans avoir à tout (mal) réécrire. La STL fait partie intégrante du langage C++ et se retrouve sur tout les compilateurs conforme à la norme. Tu peux donc l'apprendre et l'utiliser sans soucis car tu sera amené à l'utiliser et tu la retrouveras dans les codes que tu sera amener à relire.
    Cette entrée de la FAQ aborde le sujet. Le chapitre 2.3 de "Penser en C++" (le livre de bruce Eckel Thinking in C++ dont la rédaction propose une traduction) aborde ceux-ci.
    Où trouver les flux : dans l'en-tête <iostream>. Donc ton programme doit l'inclure avant de l'utiliser :
    La STL utilise l'espace de nom std ce qui signifie qu'il faut préfixer les objets définis par la STL par std:: :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::une_fonction_de_la_stl();
    Pour afficher des éléments sur la console de sortie, la STL propose l'objet std::cout de type std::ostream (o pour output et stream pour flux). std::ostream sait parfaitement gérer les sorties des types standards via les surchages adéquates de l'opérateur << :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    char c('c');
    std::cout<<c<<std::endl;
    int i(4);
    std::cout<<i<<std::endl;
    double d(4.2);
    std::cout<<d<<std::endl;
    std::cout<<"coucou"<<std::endl;
    Pour revenir à la ligne, on utilise std::endl (un peu l'équivalent du \n des format du C).
    Tes affichages :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    printf("Entrez le nombre 1 : ");
    deviennent donc :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    std::cout<<"Entrez le nombre 1 : ";
    Pour les entrées, la STL propose std::cin (remplaçant donc sscanf) avec l'opérateur >>. Comme pour std::cout, elle gère de base les types standards:
    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
     
    char c(0);
    std::cin>>c;
    std::cout<<"Vous avez saisi : "<<c<<std::endl;
     
    int i(0);
    std::cin>>i;
    std::cout<<"Vous avez saisi : "<<i<<std::endl;
     
    double d(0.);
    std::cin>>d;
    std::cout<<"Vous avez saisi : "<<d<<std::endl;
     
    std::string chaine; // type de la STL pour les chaines de caractères définis dans l'en-tête <string>
    std::cin>>chaine;
    std::cout<<"Vous avez saisi : "<<chaine<<std::endl;
    Tes lignes deviennent donc En C++, ton code devient donc :
    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
     
       int Nombre1, Nombre2;                           // On declare les variables Resultat, Nombre1 et Nombre2
     
       std::cout<<"Entrez le nombre 1 : ";                          // Demande d'entrer le nombre 1
       std::cin>>Nombre1;
       std::cout<<"Entrez le nombre 2 : ";                         // Demande d'entrer le nombre 2
       std::cin>>Nombre2;
     
     
       if ( Nombre1 > Nombre2)
          std::cout<<"Le plus grand est : Nombre 1"<<std::endl;
       else if (Nombre1 < Nombre2)
          std::cout<<"Le plus grand est : Nombre 2"<<std::endl;
       else if(Nombre1 == Nombre2)
          std::cout<<"Les Nombre1 et Nombre2 sont égaux"<<std::endl;
     
       return 0;
    Mais, la STL c'est aussi des conteneurs pour gérer les chaînes de caractères, tableaux, les listes, les map (association d'une clé et d'une valeur) ainsi que de nombreux algorithmes (tri, parcours d'un ensemble, recherche d'un min, d'un max, etc.). Je t'invite à consulter la FAQ ainsi que les différents tutoriels pour te familiariser avec.

  5. #5
    Membre averti
    Inscrit en
    Février 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 20
    Par défaut
    Et une des raisons pour laquelle ça ne marchait pas est que tu n'as pas précisé de \n à la fin de ton printf.
    Pour que le printf soit affiché, il faut vidé le tampon de la sortie standard, qui peut se faire ou en envoyant un saut de ligne dans la sortie standard, ou bien en faisant un fflush.
    Donc il serait mieux de faire

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 16
    Par défaut
    Merci à tous pour votre réponse.
    ça y 'est mon programme fonctionne!!

    Encore merci

Discussions similaires

  1. [10g] Afficher la plus grande valeur dans une requête
    Par alexis trotta dans le forum SQL
    Réponses: 6
    Dernier message: 14/03/2014, 14h54
  2. Prgramme qui affiche le plus grand et petit nombre
    Par Hipokoo dans le forum Débuter
    Réponses: 5
    Dernier message: 25/09/2011, 20h20
  3. afficher deux plus grand notes de class
    Par domxaline dans le forum Débuter avec Java
    Réponses: 11
    Dernier message: 20/08/2009, 15h19
  4. Réponses: 1
    Dernier message: 08/04/2009, 12h17
  5. afficher les plus grand montants
    Par bertrand_declerck dans le forum Langage SQL
    Réponses: 12
    Dernier message: 19/08/2005, 14h31

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