Partage
  • Partager sur Facebook
  • Partager sur Twitter

[c] Ma calculette (topic unique) probleme

    18 décembre 2005 à 9:54:46

    Bonjours à tous?

    donc voila pour commencer je vous met le code :

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

    int main(int argc, char *argv[])
    {
      printf ("********** /Claculette par oYo/ ********** \n\n");
     
      // Début du menu.
     
      long choixmenu;
      printf ("Choisissez le type d'operation a effectuer : \n\n");
      printf ("1. Calculs de base (+, -, *, /)\n");
      printf ("2. Calculs d'aires \n");
      printf ("3. Calculs de puissance \n");
      printf ("4. Calculs de racines \n");
      printf ("5. Calculs de Trigonometrie \n");
      printf ("6. Calculs de PGCD \n\n");
      scanf ("%ld", &choixmenu);
     
      // Fin du menu.
     
      printf ("\n\n");
     
      // Si l'utilisateur a choisit le menu calculs de base.
     
      if (choixmenu == 1)
      {
      system("CLS");           
      long nombre1 = 0, nombre2 = 0, resultat = 0;
      char signe;
      printf ("Tapez le premier nombre : ");
      scanf ("%ld", &nombre1);
      getchar();
      printf ("Tapez le signe d'operation : ");
      scanf ("%c", &signe);
      printf ("Tapez le deuxieme nombre : ");
      scanf ("%ld", &nombre2);
     
      if(signe == '+')
      {
               resultat = nombre1 + nombre2;
      }
     
      else if(signe == '-')
      {
               resultat = nombre1 - nombre2;
      }
     
      else if(signe == '*')
      {
               resultat = nombre1 * nombre2;
      }
     
      else if(signe == '/')
      {
               resultat = nombre1 / nombre2;
      }
     
      printf ("\n %ld %c %ld = %ld \n\n", nombre1, signe, nombre2, resultat);
      }
      // Fin du premier choix "calculs de base"
     
      // Si l'utilisateur a choisit le menu "Calculs d'aires"
     
      long aires = 0, cote_carre = 0, resultat_aire_carre = 0, largeur_rectangle = 0, longueur_rectangle = 0, resultat_aire_rectangle = 0, base_triangle = 0, hauteur_triangle = 0, resultat_aire_triangle = 0;
     
      system("CLS");
     
      if (choixmenu == 2)
      {
      printf ("De qu'elle figure geaometrique souhaitez vous calculer l'aire : \n\n");
      printf ("1. Carre \n");
      printf ("2. Rectangle \n");
      printf ("3. Triangle \n");
      scanf ("%ld", &aires);
       
      system("CLS");
     
      // Si l'utilisateur souhaite savoir l'aire d'un carré
     
      if (aires == 1)
      {
      printf ("Entrez la mesure du coter du carre (en cm) : ");
      scanf ("%ld", &cote_carre);
      resultat_aire_carre = cote_carre * cote_carre;
      printf ("\n");
      printf ("Le carre de coter %ld cm a une aire egale a %ld cm² \n\n", cote_carre, resultat_aire_carre);
      }
     
      // Si l'utilisateur souhaite savoir l'aire d'un rectangle
     
      if (aires == 2);
      {
      printf ("Entrez la mesure de la largeur du rectangle (en cm) : ");
      scanf ("%ld", &largeur_rectangle);
      printf ("Entrez la mesure de la longueur du rectangle (en cm) : ");
      scanf ("%ld", &longueur_rectangle);
      resultat_aire_rectangle = largeur_rectangle * longueur_rectangle;
      printf ("\n");
      printf ("Le rectangle de largeur %ld et de longueur %ld a une aire egale a %ld cm² \n\n", largeur_rectangle, longueur_rectangle, resultat_aire_rectangle);
      }
     
      // Si l'utilisateur souhaite savoir l'aire d'un triangle
     
      if (aires == 3);
      {
      printf ("Entrez la mesure de la base du triangle (en cm) : ");
      scanf ("%ld", &base_triangle);
      printf ("Entrez la mesure de la hauteur du triangle (en cm) : ");
      scanf ("%ld", &hauteur_triangle);
      resultat_aire_triangle = base_triangle / 2 * hauteur_triangle / 2;
      printf ("\n");
      printf ("Le triangle de base %ld cm et de hauteur %ld cm a une aire egale a %ld cm² \n\n", base_triangle, hauteur_triangle, resultat_aire_triangle);
      }
     
     
      }
     
     
      system("PAUSE");     
      return 0;
    }


    Comme vous pouvez le voir des qu'un choix est effectuer dans le menu aire, suit un autre menu, ainsi les "if" s'entrecroise et j'ai l'impression que ca fait un conflit car quand on va dans "aire" > "triangle"
    il me met les configuration pour l'aire du rectangle

    Tenez je vous met le programme pour que vous testiez :

    ici

    Merci d'avance pour votre aide, toujours si precieuse :D
    • Partager sur Facebook
    • Partager sur Twitter
      18 décembre 2005 à 10:08:13

      Suffit de remplacer tous ces if, par un switch, chez moi ca marche nickel :p :
      #include <stdio.h>
      #include <stdlib.h>
      #include <math.h>

      int main(int argc, char *argv[])
      {
        printf ("********** /Claculette par oYo/ ********** \n\n");
       
        // Début du menu.
       
        long choixmenu;
        printf ("Choisissez le type d'operation a effectuer : \n\n");
        printf ("1. Calculs de base (+, -, *, /)\n");
        printf ("2. Calculs d'aires \n");
        printf ("3. Calculs de puissance \n");
        printf ("4. Calculs de racines \n");
        printf ("5. Calculs de Trigonometrie \n");
        printf ("6. Calculs de PGCD \n\n");
        scanf ("%ld", &choixmenu);
       
        // Fin du menu.
       
        printf ("\n\n");
       
        // Si l'utilisateur a choisit le menu calculs de base.
       
        if (choixmenu == 1)
        {
        system("CLS");           
        long nombre1 = 0, nombre2 = 0, resultat = 0;
        char signe;
        printf ("Tapez le premier nombre : ");
        scanf ("%ld", &nombre1);
        getchar();
        printf ("Tapez le signe d'operation : ");
        scanf ("%c", &signe);
        printf ("Tapez le deuxieme nombre : ");
        scanf ("%ld", &nombre2);
       
        if(signe == '+')
        {
                 resultat = nombre1 + nombre2;
        }
       
        else if(signe == '-')
        {
                 resultat = nombre1 - nombre2;
        }
       
        else if(signe == '*')
        {
                 resultat = nombre1 * nombre2;
        }
       
        else if(signe == '/')
        {
                 resultat = nombre1 / nombre2;
        }
       
        printf ("\n %ld %c %ld = %ld \n\n", nombre1, signe, nombre2, resultat);
        }
        // Fin du premier choix "calculs de base"
       
        // Si l'utilisateur a choisit le menu "Calculs d'aires"
       
        long aires = 0, cote_carre = 0, resultat_aire_carre = 0, largeur_rectangle = 0, longueur_rectangle = 0, resultat_aire_rectangle = 0, base_triangle = 0, hauteur_triangle = 0, resultat_aire_triangle = 0;
       
        system("CLS");
       
        if (choixmenu == 2)
        {
        printf ("De qu'elle figure geaometrique souhaitez vous calculer l'aire : \n\n");
        printf ("1. Carre \n");
        printf ("2. Rectangle \n");
        printf ("3. Triangle \n");
        scanf ("%ld", &aires);
         
        system("CLS");
       
        // Si l'utilisateur souhaite savoir l'aire d'un carré
       switch(aires)
       {
                    case 1 :
                         printf ("Entrez la mesure du coter du carre (en cm) : ");
        scanf ("%ld", &cote_carre);
        resultat_aire_carre = cote_carre * cote_carre;
        printf ("\n");
        printf ("Le carre de coter %ld cm a une aire egale a %ld cm² \n\n", cote_carre, resultat_aire_carre);
        break;
                    case 2 :
                      printf ("Entrez la mesure de la largeur du rectangle (en cm) : ");
        scanf ("%ld", &largeur_rectangle);
        printf ("Entrez la mesure de la longueur du rectangle (en cm) : ");
        scanf ("%ld", &longueur_rectangle);
        resultat_aire_rectangle = largeur_rectangle * longueur_rectangle;
        printf ("\n");
        printf ("Le rectangle de largeur %ld et de longueur %ld a une aire egale a %ld cm² \n\n", largeur_rectangle, longueur_rectangle, resultat_aire_rectangle);
        break;
       
                    case 3 :
                         printf ("Entrez la mesure de la base du triangle (en cm) : ");
        scanf ("%ld", &base_triangle);
        printf ("Entrez la mesure de la hauteur du triangle (en cm) : ");
        scanf ("%ld", &hauteur_triangle);
        resultat_aire_triangle = base_triangle / 2 * hauteur_triangle / 2;
        printf ("\n");
        printf ("Le triangle de base %ld cm et de hauteur %ld cm a une aire egale a %ld cm² \n\n", base_triangle, hauteur_triangle, resultat_aire_triangle);
        break;
       
                    default :
                            printf("Vous vous etes trompe, desole !!");
                           
                            }   
                         
        }
       
       
        system("PAUSE");     
        return 0;
      }
      • Partager sur Facebook
      • Partager sur Twitter
        18 décembre 2005 à 10:15:01

        merci pour ton aide, je vais relire le chapitre sur les switch car je m'y interesser pas trop, je préféré les 'if' mais bon si ca marche avec ca lol
        • Partager sur Facebook
        • Partager sur Twitter

        [c] Ma calculette (topic unique) probleme

        × 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