C++

Résolu
thomas57070 Messages postés 178 Date d'inscription   Statut Membre Dernière intervention   -  
thomas57070 Messages postés 178 Date d'inscription   Statut Membre Dernière intervention   -
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

Kaotix96 Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   12
 
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
thomas57070 Messages postés 178 Date d'inscription   Statut Membre Dernière intervention   8
 
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
Kaotix96 Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   12
 
est-ce que tu peux copier le code entier svp ?
0
Kaotix96 Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   12
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
thomas57070 Messages postés 178 Date d'inscription   Statut Membre Dernière intervention   8
 
Ok je fais le code et je te tien au courant, merci de tes info.
0
titus22 Messages postés 1918 Date d'inscription   Statut Membre Dernière intervention   639
 
met :
string Cod
et n'oublie pas les guillements dans tes comparaisons ainsi que le double égale :
if (Cod == "BI")
0
thomas57070 Messages postés 178 Date d'inscription   Statut Membre Dernière intervention   8
 
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
Kaotix96 Messages postés 108 Date d'inscription   Statut Membre Dernière intervention   12
 
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
thomas57070 Messages postés 178 Date d'inscription   Statut Membre Dernière intervention   8
 
Merci c'est bien à cela que je suis arrivé !
Par contre petite question informative system("pause") sert a quoi ?
0
titus22 Messages postés 1918 Date d'inscription   Statut Membre Dernière intervention   639
 
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
thomas57070 Messages postés 178 Date d'inscription   Statut Membre Dernière intervention   8
 
ok merci pour la réponse !
0