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 :

Erreur (de débutant)


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 2
    Par défaut Erreur (de débutant)
    Bonjour, j'ai crée un programme calculant la moyenne des cours.
    Seulement il y a une erreur lorsqu'il affiche les "reussi" "rate" et "dispense" avec des nombres faramineux (2.144e255...)
    Je pense que l'erreur vient de mon passage IF, else if, ..
    Voyez 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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    #include <iostream>
    using namespace std;
    int main()
    {
        double a,b,nom,denom,moyenne,x=1,rate,reussi,dispense;          // "double" car on a besoin des entiers pour faire une moyenne.
     
        cout<<"Cote obtenue au cours 1:"<<endl;                         // je commence mon programme par la dernière partie de mon "do...while" 
              cin>>a;                                                   // pour subvenir aux consignes précises du projet.
        do                                                              // pourquoi "do...while"? simplement car on est sur que l'utilisateur
        {                                                               // doit au moins rentrer une cote.
              if (a < 10)
                 rate +=1;
              else if (a >= 10 && a < 12)
                 dispense +=1;
              else if (a >= 12)
                 reussi +=1;
     
              cout<<"Valeur en ECTS de ce cours:"<<endl;                
              cin>>b;
     
              nom=nom+a*b;                                              // "nom" est le nominateur du calcul de la moyenne.
              denom=denom+b;                                            // "denom" est le dénominateur du calcul de la moyenne.
     
              x +=1;                                                    // suptilité pour un meilleur affichage et compréhension de l'utilisateur.
              cout<<"Cote obtenue au cours: "<<x<<endl;
              cin>>a;
        }
        while (a >= 0);                                                 // permet d'arrêter la boucle et passer à la suite pour ainsi afficher:
        moyenne=(nom/denom);                                                                          
        cout<<"Votre moyenne ponderee est de : "<< moyenne <<endl;                                    // moyenne pondérée.
        cout<<"Vous avez reussi "<<reussi<< " cour(s)."<<endl;                                        // nombre de cours réussis.
        cout<<"Vous avez rate "<<rate<< " cour(s)."<<endl;                                            // nombre de cours ratés.
        cout<<"Vous avez obtenu une dispense de session pour "<<dispense<< " cour(s)."<<endl;         // nombre de dispenses de session.
        return 0;
    }                                                                   // fin du programme.
    Merci bien de m'indiquer ou est l'erreur, je suis sur qu'elle est basique et totalement **** .

  2. #2
    Membre Expert

    Inscrit en
    Mai 2008
    Messages
    1 014
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 1 014
    Par défaut
    Bienvenue, thecrom!

    Si tu veux t'éviter bien des déconvenues en C++, je te conseille d'appliquer ce commandement sans coup férir :
    EN C++, TOUJOURS INITIALISER TES VARIABLES TU DEVRAS
    Car le compilateur ne le fait pas pour toi.
    Par exemple si tu déclares un entier i sans l'initialiser:
    Alors i vaut n'importe quoi. (généralement un nombre gigantesque un peu absurde, c'est d'ailleurs à ça qu'on reconnait la plupart du temps une variable mal initialisée)

  3. #3
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    C'est vrai pour tous les types primitifs.

    Si ton attribut est une instance de classe, le compilateur essayera d'appeler le constructeur par défaut, mais de toute manière c'est une bonne pratique de tout faire pour que après un appel à un constructeur, dont objet soit dans un état cohérent, utilisable.

Discussions similaires

  1. L'erreur du débutant ?
    Par Enkahel dans le forum Débuter
    Réponses: 1
    Dernier message: 04/05/2007, 10h33
  2. Erreur de débutant
    Par michel71 dans le forum Débuter
    Réponses: 2
    Dernier message: 10/12/2006, 14h21
  3. [SQL] Erreur grand débutant echo / $data
    Par carelha dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 15/05/2006, 12h01
  4. Message d'erreur pour débutant
    Par PhpDeb dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 7
    Dernier message: 27/04/2006, 12h14
  5. erreur de débutant
    Par michel71 dans le forum Delphi .NET
    Réponses: 1
    Dernier message: 08/03/2006, 00h26

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