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

  • Votes
  • Date
  • Date décroissante
  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; 
    } 
    
    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 ?
      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;
        1. Ok je fais le code et je te tien au courant, merci de tes info.
          1. met :
            string Cod
            et n'oublie pas les guillements dans tes comparaisons ainsi que le double égale :
            if (Cod == "BI")
        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é !
          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;
            
            
            }
            
            1. Merci c'est bien à cela que je suis arrivé !
              Par contre petite question informative system("pause") sert a quoi ?
              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 :)
              2. ok merci pour la réponse !