Erreur deprogrammation

Résolu
Bonjour, je suis débutant en programmation et je travaille sur microsoft visual studio en C++ , jai ecrit leprograme suivant malheuresement je n'obtient pas ce que je shouaite et j'aimerai les conseilles de quelqu'un pour me dire ou j'ai bien pu me tromper merci :)

#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

int main(int argc, char *argv[])
{
int age = 0;

printf("Quel age avait vous?");

scanf ("%f", &age);

if (age == 2)
{
printf("Salut bebe !");
}
else if (age == 6)
{
printf("Salut gamin !");
}
else if (age == 12)
{
printf("Salut jeune !");
}
else if (age == 16)
{
printf("Salut ado !");
}
else if (age == 18)
{
printf("Salut adulte !");
}
else if (age == 68)
{
printf("Salut papy !");
}
else
{
printf("Je n'ai aucune phrase de prete pour ton age ");
getch ( );
}
}
Configuration: Windows XP
Firefox 3.5.6

6 réponses

  • Votes
  • Date
  • Date décroissante
  1. Peut-être qu'en mettant des '<=' au lieu des '=='... enfin je dis ça mais... comme tu ne dis pas ce que tu veux obtenir, ce ne peut être qu'une supputation ;-)
    Bonne continuation.
    1. J'obtient toujours "Je n'ai aucune phrase de prete pour ton age" pour nimporte quel age
      1. Modérateur
        Si tu utilises du C++, utilises std::cout et std::cin plutôt que printf et scanf.
        De plus si c'est des == que tu veux, il vaut mieux utiliser un switch plutôt qu'une succession de if.

        ps. on dit "Quel age avez vous ?"
        1. Oups, je n'avais pas vu:
          int age = 0;
          scanf ("%f", &age);

          'age' est un entier, donc: scanf ("%d", &age);
          Bonne continuation.
          1. Modérateur
            Remarque : ton erreur venait certainement du %f, il aurait fallu utiliser %d

            Voici une version C++ :

            #include <iostream>
            
            int main(int argc, char *argv[])
            {
                int age;
            
                std::cout << "Quel age avez vous ?" << std::endl;
                std::cin >> age;
            
                switch (age)
                {
                    case 2  : std::cout << "Salut bebe !"  << std::endl; break;
                    case 6  : std::cout << "Salut gamin !" << std::endl; break;
                    case 12 : std::cout << "Salut jeune !" << std::endl; break;
                    case 16 : std::cout << "Salut ado !"   << std::endl; break;
                    case 18 : std::cout << "Salut adulte !"<< std::endl; break;
                    case 68 : std::cout << "Salut papy !"  << std::endl; break;
                    default : std::cout << "Je n'ai aucune phrase de prete pour ton age" << std::endl;
                }
            
                system("PAUSE"); // je sais c'est moche ;-)
            }