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. 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
  2. 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 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. 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. 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. est-ce que tu peux copier le code entier svp ?
          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. 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