Se connecter avec
S'enregistrer | Connectez-vous
Votre question

Problème avec la condition "if... else"

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
Partagez
1 Juillet 2008 15:52:03

Bonjour,

Je viens de me lancer dans la programmation en apprenant le langage C. Je rencontre un problème lorsque mon programme arrive au niveau de la condition "if... else".
  1. printf("Quelle est votre humeur du jour? (sur une echelle de 0 a 20)\n");
  2.  
  3. scanf("%lf", &humeur);
  4. // désigne l'attente d'une valeur
  5.  
  6. if (humeur >= 0 && humeur < 4)
  7. {
  8. printf("C'est la deprime totale on dirait!\n");
  9. }
  10.  
  11. else if (humeur >= 4 && humeur < 8)
  12. {
  13. printf("Vous n'etes pas bien du tout alors\n");
  14. }
  15.  
  16. else if (humeur >= 8 && humeur < 12)
  17. {
  18. printf("Vous n'avez pas l'air d'aller bien, souriez!\n");
  19. }
  20.  
  21. else if (humeur >= 12 && humeur < 15)
  22. {
  23. printf("On dirait que tout va bien alors\n");
  24. }
  25.  
  26. else if (humeur >= 15 && humeur < 18)
  27. {
  28. printf("Vous avez la peche aujourd'hui!\n");
  29. }
  30.  
  31. else if (humeur >= 18 && humeur <= 20)
  32. {
  33. printf("Vous avez l'air en pleine forme!\n");
  34. }
  35.  
  36. else
  37. {
  38. printf("Votre reponse ne correspond pas a la question\n");
  39. }


La réponse attendue ne coincide pas avec le programme.

Que faut-il changer?

Merci.

Autres pages sur : probleme condition else

1 Juillet 2008 16:39:50

Bonjour,

je débute avec le C moi aussi mais en initialisant la variable au début, j'arrive à faire marcher ton programme.

  1. double humeur = 0;
  2.  
  3. printf("Quelle est votre humeur du jour? (sur une echelle de 0 a 20)\n");
  4.  
  5. scanf("%lf", &humeur);
  6. // désigne l'attente d'une valeur
  7.  
  8. if (humeur >= 0 && humeur < 4)
  9. {
  10. printf("C'est la deprime totale on dirait!\n");
  11. }
  12.  
  13. else if (humeur >= 4 && humeur < 8)
  14. {
  15. printf("Vous n'etes pas bien du tout alors\n");
  16. }
  17.  
  18. else if (humeur >= 8 && humeur < 12)
  19. {
  20. printf("Vous n'avez pas l'air d'aller bien, souriez!\n");
  21. }
  22.  
  23. else if (humeur >= 12 && humeur < 15)
  24. {
  25. printf("On dirait que tout va bien alors\n");
  26. }
  27.  
  28. else if (humeur >= 15 && humeur < 18)
  29. {
  30. printf("Vous avez la peche aujourd'hui!\n");
  31. }
  32.  
  33. else if (humeur >= 18 && humeur <= 20)
  34. {
  35. printf("Vous avez l'air en pleine forme!\n");
  36. }
  37.  
  38. else
  39. {
  40. printf("Votre reponse ne correspond pas a la question\n");
  41. }

1 Juillet 2008 17:04:46

Merci de m'avoir répondu sIake.

Dans le programme j'avais déjà initialisé la variable "humeur" sauf que j'ai oublié de copier cette ligne qui se située juste au-dessus.
Le problème c'est que j'ai noté
  1. int humeur = 10;
au lieu de
  1. double humeur = 10;


Mais pourquoi le type de variable <int> ne fonctionne pas ici ?
1 Juillet 2008 20:29:09

Citation :
scanf("%lf", &humeur);

Tu lis un flottant. En binaire c'est codé selon une norme IEEE. Si du codage binaire (double), tu le prends comme un nombre entier classique (int), ça ne veut plus rien dire.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS
Paul