Tom's Guide > Forum > Programmation > Problème avec la condition "if... else"

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

Forum Programmation : Problème avec la condition "if... else"

TomsGuide.com : 800 000 inscrits répondent à toutes vos questions high-tech et informatique. Pour obtenir de l'aide, inscrivez-vous gratuitement !
Mot :    Pseudo :           
 

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".

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



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

Que faut-il changer?

Merci.

Liens sponsorisés
Inscrivez-vous ou connectez-vous pour masquer ceci.

Bonjour,

 

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

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



Message édité par sIake le 01-07-2008 à 16:46:26
Répondre à sIake

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é

Code :
  1. int humeur = 10;

au lieu de

Code :
  1. double humeur = 10;



Mais pourquoi le type de variable <int> ne fonctionne pas ici ?

Répondre à Sephiroth_Ange

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.

------------------------------ 6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Tom's Guide > Forum > Programmation > Problème avec la condition "if... else"
Aller à :

Il y a 2611 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.

Attention

Vous allez répondre sur un sujet resté inactif pendant plus de 6 mois.
Assurez-vous d'apporter des éléments nouveaux à la discussion avant de poursuivre.

Répondre Annuler
Liens