[c++] Question mini programme

Stef -  
 Stef -
Bonjour, je suis débutant en c++ et je suis en train de faire un mini programme qui calcule les moyennes.

Voici le programme ( non terminé ) :

#include <iostream>
using namespace std;

main () {

float a, b, c, d, e, f, g; //differentes notes
int n; //total de notes
int z; // variable permetant l'arret du programme a un certain endroit

cout <<"Bienvenue dans Moyenne calculator v2";
cout <<"\n====================================";
cout <<"\nCombien de notes avez vous ? :";
cin >> n;

while (n<=0){ cout <<"\nVeuillez entrer un nombre positif :";
cin >> n; }

if (n=1) { cout <<"\nEntrez votre premiere note :";
cin >> a;
cout <<"\nVotre moyenne est : " << a / 1;
cin >> z; }

if (n=2) { cout <<"\nEntrez votre premiere note :";
cin >> a;
cout <<"\nEntrez votre deuxieme note :";
cin >> b;
cout <<"\nVotre moyenne est : " << ( a + b ) / 2;
cin >> z; }

if (n=3) { cout <<"\nEntrez votre premiere note :";
cin >> a;
cout <<"\nEntrez votre deuxieme note :";
cin >> b;
cout <<"\nEntrez votre troisieme note :";
cin >> c;
cout <<"\nVotre moyenne est : " << ( a + b + c ) / 3;
cin >> z; }

getchar(); }

Voici mon probleme . Lorsque je lance le programme , le programme me demande combien j'ai de notes au total , si je repond 1 tout va bien il me met la moyenne 1.
Mais si je tape 2 pour le nombre de notes , il me demandera que la 1ere note et non la 2eme et fera la moyenne que avec cette notte. On dirait que le programme lit la condition if (n=1) meme si je tape que le nombre total de notes est2 (n).
J'aimerais faire en sorte que si je dis que le nombre de notes est n=2 , que le programme ignore la condition : if (n=1). Et je vois vraiment pas ou pourait etre l'erreur.

Merci d'avance .
Configuration: Windows XP
Firefox 2.0.0.14

5 réponses

  1. ibtor Messages postés 2564 Statut Membre 283
     
    if (n==2) ça marchera mieux
    0
    1. Stef
       
      Merci , mais sa ne change malheureusement rien :(
      0
  2. ibtor Messages postés 2564 Statut Membre 283
     
    fais un cout << n << endl ;

    juste avant if (n==1)
    et donne le résultat quand tu met 2
    0
    1. Stef
       
      "et donne le résultat quand tu met 2"

      Hmm.. Pas trop bien compris ou donner le résultat ?
      0
  3. ibtor Messages postés 2564 Statut Membre 283
     
    cout <<"Bienvenue dans Moyenne calculator v2";
    cout <<"\n====================================";
    cout <<"\nCombien de notes avez vous ? :";
    cin >> n;

    while (n<=0){ cout <<"\nVeuillez entrer un nombre positif :";
    cin >> n; }

    cout << n << endl; //tu le mets là

    if (n==1) { cout <<"\nEntrez votre premiere note :"; //oublie pas de mettre ==
    cin >> a;
    cout <<"\nVotre moyenne est : " << a / 1;
    cin >> z; }

    if (n==2) { cout <<"\nEntrez votre premiere note :"; //idem
    cin >> a;
    cout <<"\nEntrez votre deuxieme note :";
    cin >> b;
    cout <<"\nVotre moyenne est : " << ( a + b ) / 2;
    cin >> z; }
    0
    1. Stef
       
      C'est exactement ce que j'avait modifié pour obtenir :

      cout <<"Bienvenue dans Moyenne calculator v2";
      cout <<"\n====================================";
      cout <<"\nCombien de notes avez vous ? :";
      cin >> n;

      while (n<=0){ cout <<"\nVeuillez entrer un nombre positif :";
      cin >> n; }

      cout << n << endl ;

      if (n==1) { cout <<"\nEntrez votre premiere note :";
      cin >> a;
      cout <<"\nVotre moyenne est : " << a / 1;
      cin >> z; }

      if (n==2) { cout <<"\nEntrez votre premiere note :";
      cin >> a;
      cout <<"\nEntrez votre deuxieme note :";
      cin >> b;
      cout <<"\nVotre moyenne est : " << ( a + b ) / 2;
      cin >> z; }



      Mais j'ai toujours le meme probleme : /
      Je vois pas ou est le probleme :(
      0
      1. Stef > Stef
         
        Depusi que j'ai rajouté cout << n << endl ; je ne vois pas de différence , le probleme reste le meme si je tape 2 ou 3 pour le nombre de notes , le programme me demandera que la premeire note et me donnera la moyenne , cette notte elle meme donc ...
        0
  4. ibtor Messages postés 2564 Statut Membre 283
     
    mais ça sort bien une valeur non de non @###@#~{[#{|{#|

    pour le cout << n << endl ;
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ibtor Messages postés 2564 Statut Membre 283
     
    je viens de le tester, j'ai pas d'erreur, tout marche correctement

    j'ai refais le programme (plus light, mieux optimisé)

    #include <iostream>
    using namespace std;
    int main()
    {

    float a, b; //differentes notes
    int n; //total de notes
    int z;
    int i;
    int m;

    cout <<"Bienvenue dans Moyenne calculator v2";
    cout <<"\n====================================";
    cout <<"\nCombien de notes avez vous ? :";
    cin >> n;

    while (n<=0){ cout <<"\nVeuillez entrer un nombre positif :";
    cin >> n; }
    i=1;
    a=0;
    while (i<=n)
    {
    cout << "Entrez votre note numero " << i << " : ";
    cin >> b;
    a = a + b;
    i++;
    }
    cout << endl << "Votre moyenne est de :" << a / n ;

    return 0;
    }
    0
    1. Stef
       
      Ah , je crois que j'ai comrpis mon erreur !
      Merci beacoup d'avoir pris du temps pour m'aider :)

      Bonne nuit.
      0