Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Cours sur les fonctions] Le petit rajout...

    27 décembre 2005 à 14:13:03

    long menu()
    {
        long choix = 0;
       
        while (choix < 1 || choix > 4)
        {
            printf("Menu :\n");
            printf("1 : Poulet de dinde aux escargots rotis a la sauce bearnaise\n");
            printf("2 : Concombres sucres a la sauce de myrtilles enrobee de chocolat\n");
            printf("3 : Escalope de kangourou saignante et sa gelee aux fraises poivree\n");
            printf("4 : La surprise du Chef (j'en salive d'avance...)\n");
            printf("Votre choix ? ");
            scanf("%ld", &choix);
        }   
       
        return choix;
    }   

    int main(int argc, char *argv[])
    {   
        switch (menu())
        {
            case 1:
                printf("Vous avez pris le poulet\n");
                break;
            case 2:
                printf("Vous avez pris les concombres\n");
                break;
            case 3:
                printf("Vous avez pris l'escalope\n");
                break;
            case 4:
                printf("Vous avez pris la surprise du Chef. Vous etes un sacre aventurier dites donc !\n");
                break;   
        }
       
        system("PAUSE");   
        return 0;
    }


    Donc voilà, dans le chapitre sur les fonctions, Matheo nous met ce code, et il nous demande de mettre un message d'erreur si la personne entre un mauvais nombre, plutôt que de réafficher le menu.

    Je pensais à afficher le menu, quoiqu'il arrive, puis ensuite faire:



    if( choix > 4 || choix < 1)
    {
        choix = 1 ;
        printf("Erreur...");
        }
    return choix ;



    Etant donné que je suis en vacances, je n'ai pas DevCpp sous les yeux, et je ne peux donc pas tester ce code. Bien entendu, je relirai le cours une fois rentré :p

    Donc, est-ce que quelqu'un pourrait me dire si mon "resultat" est correct, s'il vous plaît ?
    • Partager sur Facebook
    • Partager sur Twitter
      27 décembre 2005 à 15:00:05

      Oui, ton code fonctionne !

      Mais pourquoi faire simple quand on peut faire compliqué ? C'est pas compliqué de rendre compliqué !

      Moi, je fais compliqué (car je déteste printf et scanf...)
      #include <stdio.h>
      #include <stdlib.h>

      long menu(void)
      void pause(void);

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

          switch (menu())
          {
                  case 1:
                      (void)fputs("Vous avez pris le poulet\n", stdout);
                      break;
                  case 2:
                      (void)fputs("Vous avez pris les concombres\n", stdout);
                      break;
                  case 3:
                      (void)fputs("Vous avez pris l'escalope\n", stdout);
                      break;
                  case 4:
                      (void)fputs("Vous avez pris la surprise du Chef. Vous etes un sacre aventurier dites donc !\n", stdout);
                      break;
                  case 0:
                      (void)fputs("Erreur: Merci de taper correctement !\n", stdout);
                      break;
          }
         
          pause();
          return 0;
      }

      long menu(void)
      {
              long choix = 0;
         
              (void)fputs("Menu :\n", stdout);
              (void)fputs("1 : Poulet de dinde aux escargots rotis a la sauce bearnaise\n", stdout);
              (void)fputs("2 : Concombres sucres a la sauce de myrtilles enrobee de chocolat\n", stdout);
              (void)fputs("3 : Escalope de kangourou saignante et sa gelee aux fraises poivree\n", stdout);
              (void)fputs("4 : La surprise du Chef (j'en salive d'avance...)\n", stdout);
              (void)fputs("Votre choix ? ", stdout);
             
              choix = fgetc(stdin);
              (void)fflush(stdin);
              choix-= 48;
                     
              if( choix >= 5 || choix <= 0)
              {
                 choix = 0 ;
              }
             
             return choix;
      }

      void pause(void)
      {
           (void)fputs("Appuyez sur \"SAUT DE LIGNE\" pour continuer... ", stdout);
           (void)fgetc(stdin);
           (void)fflush(stdin);
      }
      • Partager sur Facebook
      • Partager sur Twitter

      [Cours sur les fonctions] Le petit rajout...

      × 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