C++

Résolu/Fermé
thomas57070 Messages postés 178 Date d'inscription mercredi 7 décembre 2011 Statut Membre Dernière intervention 31 janvier 2014 - Modifié par thomas57070 le 2/01/2012 à 09:43
thomas57070 Messages postés 178 Date d'inscription mercredi 7 décembre 2011 Statut Membre Dernière intervention 31 janvier 2014 - 2 janv. 2012 à 11:00
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 lundi 5 septembre 2011 Statut Membre Dernière intervention 5 juillet 2013 12
Modifié par Kaotix96 le 2/01/2012 à 09:52
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 mercredi 7 décembre 2011 Statut Membre Dernière intervention 31 janvier 2014 8
2 janv. 2012 à 09:57
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 lundi 5 septembre 2011 Statut Membre Dernière intervention 5 juillet 2013 12
2 janv. 2012 à 10:00
est-ce que tu peux copier le code entier svp ?
0
Kaotix96 Messages postés 108 Date d'inscription lundi 5 septembre 2011 Statut Membre Dernière intervention 5 juillet 2013 12
2 janv. 2012 à 10:06
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 mercredi 7 décembre 2011 Statut Membre Dernière intervention 31 janvier 2014 8
2 janv. 2012 à 10:13
Ok je fais le code et je te tien au courant, merci de tes info.
0
titus22 Messages postés 1918 Date d'inscription jeudi 1 décembre 2011 Statut Membre Dernière intervention 16 février 2012 636
Modifié par titus22 le 2/01/2012 à 10:15
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 mercredi 7 décembre 2011 Statut Membre Dernière intervention 31 janvier 2014 8
2 janv. 2012 à 10:27
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 lundi 5 septembre 2011 Statut Membre Dernière intervention 5 juillet 2013 12
2 janv. 2012 à 10:33
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 mercredi 7 décembre 2011 Statut Membre Dernière intervention 31 janvier 2014 8
2 janv. 2012 à 10:36
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 jeudi 1 décembre 2011 Statut Membre Dernière intervention 16 février 2012 636
2 janv. 2012 à 10:52
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 mercredi 7 décembre 2011 Statut Membre Dernière intervention 31 janvier 2014 8
2 janv. 2012 à 11:00
ok merci pour la réponse !
0