C++

Résolu
Bonjour,
J'ai un exercice de prog à faire je vous expose mon sujet :
je demande à l'utilisateur son code magasin soit BI,SM,HM ou BA
ensuite selon se qu'a rentré l'utilisateur le programme affiche un certain taux de remise selon les code :
2% pour BI
5% pour SM
10% pour HM
0% pour BA

Mais la ou je bloque c'est pour le code ou le programme choisi le taux parce que j'ai fait avec if ; else if ; else mais a chaque fois je me retrouve avec code invalide car mon else est "else cout << "code invalide !";
je vous ai copier une partie de mon prog

int main()
{
int Cod,BI,SM;
cout << "Entrer votre code magasin:" <<endl;
cin >> Cod;
if (Cod = BI)
cout << "Vous avez 2% de remise";

else if (Cod = SM)
cout << "Vous avez 5% de remise";

...

return 0;
}

J'espère que vous pourrez m'éclairer, merci et meilleur voeux à tous !!!

8 réponses

  1. tu n'a pas mi d'accolades

    int main() 
    { 
    int Cod,BI,SM; 
    cout << "Entrer votre code magasin:" <<endl; 
    cin >> Cod; 
    if (Cod = BI) 
    { cout << "Vous avez 2% de remise"; }
    
    else if (Cod = SM) 
    { cout << "Vous avez 5% de remise"; }
    
    ... 
    
    return 0; 
    } 
    
    0
    1. Sa ne marche pas chaque code que je mets quand je compile je peut rentrer n'importe quel code il m'affiche toujours la ligne "Vous avez 2% de remise" je ne comprend pas en quoi il reste bloqué sur cette ligne ?
      qu'est-ce qui manque pour qu'il fasse la différence ?
      0
      1. est-ce que tu peux copier le code entier svp ?
        0
        1. Je crois que le problème est dans la déclaration de ta variable. Tu demande à l'utilisateur 2 lettre soit BI, SM etc... mais comme ce sont des lettre tu ne doit pas utiliser un int mais une string donc ajoute
          #include <string>
          et déclare cette variable
          string Cod;
          0
          1. Ok je fais le code et je te tien au courant, merci de tes info.
            0
            1. met :
              string Cod
              et n'oublie pas les guillements dans tes comparaisons ainsi que le double égale :
              if (Cod == "BI")
              0
          2. Merci beaucoup j'ai refais le code en entier cela marche très bien !
            Je n'avais pas voir quasiment jamais utiliser string c'est pour cela que j'ai vite bloqué sur mon exo !
            Au moins maintenant je sais merci a Kaotix96 et a titus22 de m'avoir aidé !
            0
            1. je t'envoie la correction
              #include <iostream>
              using namespace std;
              #include <string>
              
              int main()
              {
                  string cod("0");
              
                  cout << "Entrez votre code magasin:" <<endl;
                  cin >> cod;
              
                  if (cod == "BI")
                  { cout << "Vous avez 2% de remise"; }
              
                  else if (cod == "SM")
                  { cout << "Vous avez 5% de remise"; }
              
                  else if (cod == "HM")
                  { cout << "Vous avez 10% de remise"; }
              
                  else if (cod == "BA")
                  { cout << "Vous avez 0% de remise"; }
              
                  else
                  { cout << "code invalide !"; }
              
                  system("pause");
                  return 0;
              
              
              }
              
              0
              1. Merci c'est bien à cela que je suis arrivé !
                Par contre petite question informative system("pause") sert a quoi ?
                0
                1. Si tu code sous windows quand tu lance le programme sa évite qu'il se ferme tout seul. Sa met le programme en pause.

                  Sous linux aucun probleme le terminal reste ouvert :)
                  0
                2. ok merci pour la réponse !
                  0