[c++] Question mini programme

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. if (n==2) ça marchera mieux
    0
    1. Merci , mais sa ne change malheureusement rien :(
      0
  2. fais un cout << n << endl ;

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

      Hmm.. Pas trop bien compris ou donner le résultat ?
      0
  3. 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. 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
    2. @StefDepusi 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. mais ça sort bien une valeur non de non @###@#~{[#{|{#|

    pour le cout << n << endl ;
    0
    1. 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. Ah , je crois que j'ai comrpis mon erreur !
        Merci beacoup d'avoir pris du temps pour m'aider :)

        Bonne nuit.
        0