Partage
  • Partager sur Facebook
  • Partager sur Twitter

conditions

if ...else

    18 juin 2006 à 19:47:43

    Bonjour,
    j'ai voulu essayé les conditions et j'ai un probleme
    #include <stdio.h>
    #include <stdlib.h>

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


      printf("\nQuelle taille fais-tu en cm? ");
      scanf("%ld", &taTaille);

      printf("\n");


      {
        if (taTaille <=170)
           printf("Ah le nain");
        else if(taTaille ==170)
          printf("ok t'est ni grand ni petit");
        else if (taTaille >=170)
           printf("Plus c'est grand plus c'est con");
        else
           printf ("Tape une valeur correct");
      }

      printf("\n\n");

      system("PAUSE");

    }


    et si je tape "salut" je veux qu'il me mette "tape une valeur correct" mais il me met la phrase "plus c'est grand plus c'est con"

    ou est 'erreur
    • Partager sur Facebook
    • Partager sur Twitter
      18 juin 2006 à 19:52:52

        {
          if (taTaille <=170)
             printf("Ah le nain");
          else if(taTaille ==170)
            printf("ok t'est ni grand ni petit");
          else if (taTaille >=170)
             printf("Plus c'est grand plus c'est con");
          else
             printf ("Tape une valeur correct");
        }


      C'est quoi ces accolades ?

      Bon ensuite quand tu tapes salut, lui il prend la valeur du 's' qui est en fait un nombre et qui doit être supérieur à 170 !
      • Partager sur Facebook
      • Partager sur Twitter
        18 juin 2006 à 20:18:09

        je sais les accolades sont pas obligé et coment faire pour qu'il mette me else quand o,n met un mot ? (sa dépasse les conditions?
        • Partager sur Facebook
        • Partager sur Twitter
          18 juin 2006 à 20:21:15

            { // Ce sont ces deux accolades qui ne servent à rien
              if (taTaille <=170)
                 printf("Ah le nain");
              else if(taTaille ==170)
                printf("ok t'est ni grand ni petit");
              else if (taTaille >=170)
                 printf("Plus c'est grand plus c'est con");
              else
                 printf ("Tape une valeur correct");
            } // <---

          ;)
          • Partager sur Facebook
          • Partager sur Twitter
            18 juin 2006 à 20:23:37

            Quand il y a une seule fonction derriere, on n'est pas obligé de mettre des accolades, mais dans tous les cas, les tienne sont MAL PLACEES!

            Enleves les tout simplement et relis le cours pour voir comment elles se mettent !
            • Partager sur Facebook
            • Partager sur Twitter
              18 juin 2006 à 20:33:08

              Elles sont correctes mais inutiles disons.
              • Partager sur Facebook
              • Partager sur Twitter
                18 juin 2006 à 20:35:58

                Salut,

                Retire tes accolades, elles servent à rien, ca passe très bien sans.

                Il faut que tu modifies tes tests, tester taTaille <=, == et >= n'a pas de sens quand c'est == les trois sont vrai, ca prend le premier test bon et puis ca saute ( tu ne fais pas le else biensur)

                    if (taTaille <170)
                       printf("Ah le nain");
                    else if(taTaille ==170)
                      printf("ok t'est ni grand ni petit");
                    else if (taTaille >170)
                       printf("Plus c'est grand plus c'est con");

                • Partager sur Facebook
                • Partager sur Twitter
                  18 juin 2006 à 20:36:02

                  Citation : tebonb

                  Elles sont correctes mais inutiles disons.


                  o_O Correctes ? Qu'entend-tu par "correct" ?
                  C'est bizarre que ca compile, il devrait y avoir une erreur de syntaxe !
                  • Partager sur Facebook
                  • Partager sur Twitter
                    18 juin 2006 à 20:42:11

                    Bah non


                    int main(void)
                    {
                        int truc = 20;
                        printf("Just a little test\n");
                        {
                            int test = 30;
                            if (truc < test)
                            {
                                printf("Oui ca marche\n");
                            }
                        }
                        getchar();
                        return 0;
                    }


                    Ici j'ai utilisé des paranthèses pour pouvoir déclarer ma variable test (En C89 elles doivent etre declarees en debut de bloc me semble t'il)
                    PS : Si tu veux plus d'infos, demande à -ed-, pas toutes de mes infos ne sont forcéments exacts, et c'est grace à lui que j'utilises ces paranthèses
                    • Partager sur Facebook
                    • Partager sur Twitter
                      18 juin 2006 à 20:49:28

                      Oui et la durée de vie de la variable test n'est que le temps que le programme est entre les accolades.

                      Quitte à écrire du C de cette facon, moi je pense qu'on est mieux d'écrire une fonction. Enfin, ce n'est qu'un avis.
                      • Partager sur Facebook
                      • Partager sur Twitter
                        19 juin 2006 à 0:25:10

                        Citation : Flo le kamikaze


                        j'ai voulu essayé les conditions et j'ai un probleme


                            if (taTaille <=170)
                               printf("Ah le nain");
                            else if(taTaille ==170)
                              printf("ok t'est ni grand ni petit");
                            else if (taTaille >=170)
                               printf("Plus c'est grand plus c'est con");
                            else
                               printf ("Tape une valeur correct");



                        et si je tape "salut" je veux qu'il me mette "tape une valeur correct" mais il me met la phrase "plus c'est grand plus c'est con"

                        ou est 'erreur


                        C'est clair que si du définis des domaines qui se recouvrent, il y a ambiguité...

                            if (taTaille <170)
                               printf("petit\n");
                            else if(taTaille ==170)
                              printf("moyen\n");
                            else if (taTaille >170)
                               printf("grand\n");

                        Quand à tes commentaires, je te les laisse... Pas besoin d'agresser les gens (1.75, désolé)...
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Music only !
                          19 juin 2006 à 10:35:44

                          le treuc c'est juste des test c'est pour ça les commentaires comme ça c'etait pour me triper lol

                          les acolade je les est enlevé
                          • Partager sur Facebook
                          • Partager sur Twitter
                            19 juin 2006 à 11:05:50

                            Citation : FrozenTear

                            Oui et la durée de vie de la variable test n'est que le temps que le programme est entre les accolades.

                            Quitte à écrire du C de cette facon, moi je pense qu'on est mieux d'écrire une fonction. Enfin, ce n'est qu'un avis.


                            Bonne remarque. C'est effectivement une préparation à la 'modularisation' du code, donc à l'écriture de fonctions.

                            Mais on ne le fait vraiment que si
                            • Le bloc de code est gros (et empêche de 'voir' le reste.)
                            • Le code est utilisé plus d'une fois. (factorisation)
                            • Partager sur Facebook
                            • Partager sur Twitter
                            Music only !

                            conditions

                            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                            • Editeur
                            • Markdown