Probleme dans condition du programme

Résolu
Bonjour,

en fait je m'exerce sur la programmation de plusieurs conditions (sous console DOS) mais j'arrive pas sortir d'un probleme
suite a ceci, peut importe l'age marqué l'inscription à la fin et "Salut gamin"

quelqu'un peut me montrer mon erreur car la je bloque pour que le programme fonctionne comme je le souhaite

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

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

printf("Quel age as tu ?\n");
scanf("%ld", age);

if (age <= 2)
{
printf("Salut bebe !");
}
else if (age > 2 <= 6)
{
printf("Salut gamin !");
}
else if (age > 6 <= 12)
{
printf("Salut jeune !");
}
else if (age > 12 <= 16)
{
printf("Salut ado !");
}
else if (age > 16 <= 18)
{
printf("Salut adulte !");
}
else if (age >= 68)
{
printf("Salut papy !");
}

printf("\n\n");

system("PAUSE");
}
Configuration: Windows Vista
Firefox 3.0.6

8 réponses

  1. la condtion de et-logique "AND" c'est pas comme ça sous DOS et en langage C je crois:
    au lieu de : else if (age > 2 <= 6) il faut que tu rends la condition comme ça :

    else if ((age > 2)&&(age<= 6))

    et aussi pour les autres utiliser '&&' pour signifier le AND
    1. Contributeur sécurité
      re

      ok jvé essayer merci :)

      jte dit
      1. Contributeur sécurité
        re

        non comme sa sa marche pas non +

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

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

        printf("Quel age as tu ?\n");
        scanf("%ld", age);

        if (age <= 2)
        {
        printf("Salut bebe !");
        }
        else if ((age > 2)&&(age <= 6))
        {
        printf("Salut gamin !");
        }
        else if ((age > 6)&&(age <= 12))
        {
        printf("Salut jeune !");
        }
        else if ((age > 12)&&(age <= 16))
        {
        printf("Salut ado !");
        }
        else if ((age > 16)&&(age <= 18))
        {
        printf("Salut adulte !");
        }
        else if (age > 68)
        {
        printf("Salut papy !");
        }
        printf("\n\n");

        system("PAUSE");
        }

        sa marque toujours Salut papy et si j'enleve les instructions age >68 sa ne marque aucun commentaire
        1. #include <stdio.h>
          #include <stdlib.h>

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

          printf("Quel age as tu ?\n");
          scanf("%ld", age);

          if (age <= 2)
          {
          printf("Salut bebe !");
          }
          if ((age > 2)&&(age <= 6))
          {
          printf("Salut gamin !");
          }
          if ((age > 6)&&(age <= 12))
          {
          printf("Salut jeune !");
          }
          if ((age > 12)&&(age <= 16))
          {
          printf("Salut ado !");
          }
          if ((age > 16)&&(age <= 18))
          {
          printf("Salut adulte !");
          }
          if (age > 68)
          {
          printf("Salut papy !");
          }
          printf("\n\n");

          system("PAUSE");
          }

          ah ok bon eliminer tous les "else" en mettant que "if" comme j'ai écris ci-dessus et croie moi cette fois çi ça marche : le problème est à cause de "else"
          1. Contributeur sécurité
            re

            non toujours pareil, c'est salut papy et si jenleve cette instruction je n'ai plus de commentaire
            1. ah non mon ami tu as une faute grave que j'ai vu pardon :
              scanf("%ld", age); ----------> "scanf" c 'est pas comme ça
              il faut écrire:

              scanf("%ld", &age);

              par ce que lorsqu'on fait la lecture d'une variable en C il faut donner l'adresse de la variable c'est comme ça: &age

              maintenant ça va marcher à 1000 pour cent

              ton probleme étais dès le début que ton ordinateur prend une valeur aléatoire de la mémore à n'importe quelle adresse pour la variable "age"
          2. Contributeur sécurité
            re

            c'est pas sa non +

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

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

            printf("Quel age as tu ?\n");
            scanf("%ld", age);

            if ("%ld" <= 2)
            {
            printf("Salut bebe !");
            }
            if (("%ld" > 2)&&("%ld" <= 6))
            {
            printf("Salut gamin !");
            }
            if (("%ld" > 6)&&("%ld" <= 12))
            {
            printf("Salut jeune !");
            }
            if (("%ld" > 12)&&("%ld" <= 16))
            {
            printf("Salut ado !");
            }
            if (("%ld" > 16)&&("%ld" <= 18))
            {
            printf("Salut adulte !");
            }

            printf("\n\n");

            system("PAUSE");
            }

            je viens de voir ton message tu as raison j'ai oublié ce & qui est obligatoire oufff bien vu

            j'essaye et jte dit
            1. Contributeur sécurité
              re

              ok c'est bon, un oublie de me*de jme prends la tete depuis un moment pour rien ^^

              en tout cas sache que TOUTES les methodes (a part la derniere au poste 7) marche quand on met le & donc merci majdou tu eu l'oeil mais je pensais pas que ce genre d'erreur passé avec le debugger
              1. de rien mon ami ! j'éspère que ton problème est résolu ! A++ !