Comment éviter le bug
Fermé
bobys
-
13 janv. 2013 à 14:23
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 13 janv. 2013 à 21:45
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 13 janv. 2013 à 21:45
A voir également:
- Comment éviter le bug
- Bug yahoo mail - Accueil - Mail
- Éviter pub youtube - Accueil - Streaming
- Bug chatgpt - Accueil - Intelligence artificielle
- Bug yahoo mail 27 fevrier 2024 ✓ - Forum Yahoo mail
- Bug snap message invisible - Forum Snapchat
8 réponses
mcfly10
Messages postés
1052
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
12 avril 2022
239
13 janv. 2013 à 16:17
13 janv. 2013 à 16:17
Si on avait un extrait du code, ça serait plus facile
#include <iostream>
#include <stdlib.h>
using namespace std;
int main()
{ system("color 12");
float montant, taux, remise, e ;
cout <<" 15% pour 100e, 25% pour 200e, 35% au dela. Saisissez le montant de vos achats pour connaitre le pourcentage de vos reductions : " ;
cin >> montant ;
if (montant < 100.) taux = 0. ;
else if (montant <= 100 < 200.) taux = 15. ;
else if (montant <= 200 < 300.) taux = 25. ;
else taux = 35. ;
remise = montant * taux/100. ;
montant = montant - remise ;
cout << "montant apres remise : " << montant ;
return main () ;
}
Je vous le met en entier, j'espére que vous pourrez m'aider.
Merci d'avance.
#include <stdlib.h>
using namespace std;
int main()
{ system("color 12");
float montant, taux, remise, e ;
cout <<" 15% pour 100e, 25% pour 200e, 35% au dela. Saisissez le montant de vos achats pour connaitre le pourcentage de vos reductions : " ;
cin >> montant ;
if (montant < 100.) taux = 0. ;
else if (montant <= 100 < 200.) taux = 15. ;
else if (montant <= 200 < 300.) taux = 25. ;
else taux = 35. ;
remise = montant * taux/100. ;
montant = montant - remise ;
cout << "montant apres remise : " << montant ;
return main () ;
}
Je vous le met en entier, j'espére que vous pourrez m'aider.
Merci d'avance.
mcfly10
Messages postés
1052
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
12 avril 2022
239
13 janv. 2013 à 16:42
13 janv. 2013 à 16:42
Tu dois changer le type de ta variable montant, et la mettre de type char*
Puis tu pourras créer une seconde variable montant2 de type float, que tu affectera avec atof (ansi string to float).
char *montant;
float montant2;
cin >>montant;
montant2 = atof(montant);
Cherche un peu :)
Puis tu pourras créer une seconde variable montant2 de type float, que tu affectera avec atof (ansi string to float).
char *montant;
float montant2;
cin >>montant;
montant2 = atof(montant);
Cherche un peu :)
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
13 janv. 2013 à 21:40
13 janv. 2013 à 21:40
C'est bien d'utiliser les pointeurs, c'est encore mieux de les allouer...
Si tu fais char *montant, tu ne peux pas faire cin >> montant; derrière sans allocation. Mais en C++, autant utiliser string, c'est fait pour.
atof() ? C'est obsolète...
Si tu fais char *montant, tu ne peux pas faire cin >> montant; derrière sans allocation. Mais en C++, autant utiliser string, c'est fait pour.
atof() ? C'est obsolète...
Je n'ai pas bien compris je suis désolé ... Tu pourrai m'expliqué ou je doit introduire char, puis pourquoi je doit creer montant2 ? En tout cas merci
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
mcfly10
Messages postés
1052
Date d'inscription
samedi 18 décembre 2004
Statut
Membre
Dernière intervention
12 avril 2022
239
13 janv. 2013 à 16:56
13 janv. 2013 à 16:56
Tu auras 2 variables.
la première est de type chaîne (char*) qui est ce que l'utilisateur a tapé.
la seconde est de type float (exactement la même que celle que tu as actuellement).
Sauf que tu rempli le float par la fonction atof plutot que par le flux cin.
la fonction atof prend en paramètre un char*, il va chercher le nombre saisi, et retourne un float.
la première est de type chaîne (char*) qui est ce que l'utilisateur a tapé.
la seconde est de type float (exactement la même que celle que tu as actuellement).
Sauf que tu rempli le float par la fonction atof plutot que par le flux cin.
la fonction atof prend en paramètre un char*, il va chercher le nombre saisi, et retourne un float.
bobys
Messages postés
7
Date d'inscription
dimanche 6 janvier 2013
Statut
Membre
Dernière intervention
13 janvier 2013
13 janv. 2013 à 18:07
13 janv. 2013 à 18:07
ça m'aiderai beaucoup que tu me fasse le bout de code ...
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 842
Modifié par fiddy le 13/01/2013 à 21:52
Modifié par fiddy le 13/01/2013 à 21:52
Tu mélanges les headers C et C++...
En C++, on inclue cstdlib et non stdlib.h
else if (montant <= 100 < 200.) taux = 15. ;
else if (montant <= 200 < 300.) taux = 25. ;
Que veux-tu faire ? Si c'est pour dire que c'est entre 100 et 200, il faut faire : else if (montant >= 100 && montant < 200)
Et comme tu es dans un else, tu as la garantie que montant >= 100, tu peux donc juste mettre : else if (montant < 200)
De même pour : else if (montant < 300)
return main () ;
Il faut mettre return 0; à la fin de ton programme C++.
Google is your friend
En C++, on inclue cstdlib et non stdlib.h
else if (montant <= 100 < 200.) taux = 15. ;
else if (montant <= 200 < 300.) taux = 25. ;
Que veux-tu faire ? Si c'est pour dire que c'est entre 100 et 200, il faut faire : else if (montant >= 100 && montant < 200)
Et comme tu es dans un else, tu as la garantie que montant >= 100, tu peux donc juste mettre : else if (montant < 200)
De même pour : else if (montant < 300)
return main () ;
Il faut mettre return 0; à la fin de ton programme C++.
Google is your friend