Partage
  • Partager sur Facebook
  • Partager sur Twitter

Menu + Fonction

    9 octobre 2019 à 22:40:15

    Bonjour est ce que quelqu'un pourrait m'aider s'il vous plait je ne comprend pas pourquoi mon programme ne marche pas (voir ci dessous) :

    #include <stdio.h>

    #include <stdlib.h>

    int airecarre(int longueur, int largeur)

    {

        return longueur * largeur;

    }

    int perimetrecarre(int longueur, int largeur)

    {

        return 2 * (longueur + largeur);

    }

    int airecercle(int rayon)

    {

        return 3.14 * (rayon * rayon);

    }

    int perimetrecercle(int rayon)

    {

        return 3.14 * 2 * rayon);

    }

    int menu()

    {

        int choix = 0;

        while (choix < 1 || choix > 4)

        {

            printf("Menu :\n");

            printf("1 : Aire d'un carre ou rectangle\n");

            printf("2 : Perimetre d'un carre ou rectangle\n");

            printf("3 : Aire d'un cercle\n");

            printf("4 : Perimetre d'un cercle\n");

            printf("Votre choix ? ");

            scanf("%d", &choix);

        }

        return choix;

    }

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

    {

        switch (menu())

        {

            case 1:

                printf("Vous avez pris l'Aire d'un carre ou rectangle\n");

                int longueur = 0,  int largeur = 0;

                printf("Entrez la longueur ");

                scanf("%d", &longueur);

                printf("Entrez la largeur");

                scanf("%d", &largeur);

                printf("L'aire est %d\n", airecarre(longueur, largeur));

                break;

            case 2:

                printf("Vous avez pris le Perimetre d'un carre ou rectangle\n");

                int longueur = 0,  int largeur = 0;

                printf("Entrez la longueur ");

                scanf("%d", &longueur);

                printf("Entrez la largeur");

                scanf("%d", &largeur);

                printf("Le perimetre est %d\n", perimetrecarre(longueur, largeur));

                break;

            case 3:

                printf("Vous avez pris l'Aire d'un cercle\n");

                int rayon = 0;

                printf("Entrez le rayon ");

                scanf("%d", &rayon);

                printf("L'aire est %d\n", airecercle(rayon));

                break;

            case 4:

                printf("Vous avez pris le Perimetre d'un cercle\n");

                int rayon = 0;

                printf("Entrez le rayon ");

                scanf("%d", &rayon);

                printf("L'aire est %d\n", airecercle(rayon));

                break;

        }

        return 0;

    }

    • Partager sur Facebook
    • Partager sur Twitter
      9 octobre 2019 à 22:47:13

      Hello,

      • "mon programme ne marche pas": ce n'est pas une bonne description du problème. Il plante, ne compile pas, etc...., avec explication du contexte / messages compilateur - linker serait bien mieux
      • dans perimetercercle(), il manque une parenthèse (après un bref survol du code)
      • pour poster du code, utilise le bouton </> de l'éditeur du site

      -
      Edité par edgarjacobs 9 octobre 2019 à 22:49:01

      • Partager sur Facebook
      • Partager sur Twitter

      On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

        9 octobre 2019 à 22:55:31

        excuse moi je n'avais jamais posté sur ce forum et je ne sais pas comment il fonction.

        Voici les messages d'erreurs que j'ai:

        et je vous remet le code correctement :

        #include <stdio.h>
        #include <stdlib.h>
        
        int airecarre(int longueur, int largeur)
        {
            return longueur * largeur;
        }
        
        int perimetrecarre(int longueur, int largeur)
        {
            return 2 * (longueur + largeur);
        }
        
        int airecercle(int rayon)
        {
            return 3.14 * (rayon * rayon);
        }
        
        int perimetrecercle(int rayon)
        {
            return 3.14 * 2 * rayon;
        }
        
        
        
        int menu()
        {
            int choix = 0;
        
            while (choix < 1 || choix > 4)
            {
                printf("Menu :\n");
                printf("1 : Aire d'un carre ou rectangle\n");
                printf("2 : Perimetre d'un carre ou rectangle\n");
                printf("3 : Aire d'un cercle\n");
                printf("4 : Perimetre d'un cercle\n");
                printf("Votre choix ? ");
                scanf("%d", &choix);
            }
        
            return choix;
        }
        
        int main(int argc, char *argv[])
        {
            switch (menu())
            {
                case 1:
                    printf("Vous avez pris l'Aire d'un carre ou rectangle\n");
                    int longueur,  int largeur;
                    longueur = 0,  largeur = 0;
                    printf("Entrez la longueur ");
                    scanf("%d", &longueur);
                    printf("Entrez la largeur");
                    scanf("%d", &largeur);
                    printf("L'aire est %d\n", airecarre(longueur, largeur));
                    break;
        
        
                case 2:
                    printf("Vous avez pris le Perimetre d'un carre ou rectangle\n");
                    int longueur,  int largeur;
                    longueur = 0,  largeur = 0;
                    printf("Entrez la longueur ");
                    scanf("%d", &longueur);
                    printf("Entrez la largeur");
                    scanf("%d", &largeur);
                    printf("Le perimetre est %d\n", perimetrecarre(longueur, largeur));
                    break;
        
        
                case 3:
                    printf("Vous avez pris l'Aire d'un cercle\n");
                    int rayon;
                    rayon = 0;
                    printf("Entrez le rayon ");
                    scanf("%d", &rayon);
                    printf("L'aire est %d\n", airecercle(rayon));
                    break;
        
        
                case 4:
                    printf("Vous avez pris le Perimetre d'un cercle\n");
                    int rayon;
                    rayon = 0;
                    printf("Entrez le rayon ");
                    scanf("%d", &rayon);
                    printf("L'aire est %d\n", perimetrecercle(rayon));
                    break;
            }
        
            return 0;
        }
        



        • Partager sur Facebook
        • Partager sur Twitter
          9 octobre 2019 à 23:41:28

          Re,-

          Deux grosses erreurs:

          - int longueur, int largeur;int longueur; int largeur; ou (mieux) int longueur, largeur;

          - des variables de même nom ne peuvent pas se trouver dans un même bloc de code. Un bloc de code, ce sont des lignes de code se trouvant entre {  }. Donc les lignes 62 et 84 ne peuvent pas exister. Je te conseille de mettre les lignes 50 et 74 hors du switch (et de supprimer les lignes 62 et 84), OU d'écrire

          switch(....) {
              case 1:
                  {
                      int longueur, int largeur;
                      ....
                  }
                  break;
              case 2:
                  {
                      int longueur, int largeur;
                      ....
                  }
                  break;
              case 3:
                  {
                      int rayon;
                      ....
                  }
                  break;
              case 4:
                  {
                      int rayon;
                      ....
                  }
                  break;
              default:
                  break;
          }
              

          Edit: attention aussi que les fonctions lignes 14 et 19 calculent un résultat en double, mais que tu renvoies un int: le résultat ne sera pas correct: 3.14 * 2 * 3 affichera 18, pas 18.84

          -
          Edité par edgarjacobs 10 octobre 2019 à 0:01:20

          • Partager sur Facebook
          • Partager sur Twitter

          On écrit "j'ai tort", pas "tord" qui est le verbe "tordre" à la 3ème personne de l'indicatif présent

          Menu + Fonction

          × 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