Partage
  • Partager sur Facebook
  • Partager sur Twitter

Calculette en boucle.

    19 août 2017 à 18:47:14

    Bonjour à tous/toutes!

    Avant toute chose , sachez que je suis relativement nouveau en C donc merci d'être gentils :D

    Voila , J'ai réalisé une petite calculette que voici.

    Elle marche bien , pas de pb visibles a mon oeil vis à vis du fonctionnement.

    seulement voila , je suis insatisfait de mon boulot , car il me semble que j'aurais pu éviter la tartine à chaque condition du if ... else if.

    N'y aurait-il pas moyen de renvoyer l'utilisateur du programme au début de la sélection d'opérations si il choisit un choix qui n'est pas

    dans la sélection de la calculette (choix 5+) ?

    Je n'arrive pas à trouver ... 

    Je vous poste le code ci dessous.

    #include <stdio.h>
    int continuer=1;
    
    int main()
    {
        do {
            float nombre1;
            float nombre2;
            float resultat;
            int choix;
            
            printf("===Bonjour et bienvenue sur la calculette d'alexandre===\n");
            printf("quelle opération puis-je réaliser pour vous?\n");
            printf("1.Addition\n");
            printf("2.Soustraction\n");
            printf("3.Multiplication\n");
            printf("4.Division\n");
            printf("Entrez l'opération souhaitée\n");
            scanf("%d",&choix);
        
            if (choix==1)
            {//début if ...
                printf("Entrez le premier nombre nécéssaire a l'opération\n");
                scanf("%f" ,&nombre1);
                printf("Entrez le second nombre nécéssaire a l'opération\n");
                scanf("%f",&nombre2);
                (resultat=nombre1+nombre2);
                printf("le résultat est %f\n",resultat);
                printf("merci d'avoir utilisé la calculatrice d'alexandre\n\n");
                printf("souhaitez vous effectuer une autre opération ?\n");
                printf("1 OUI , 0 NON \n");
                scanf("%d",&continuer);
            }//fin if ...
            else if (choix ==2)
            {//début else if choix 2
                printf("Entrez le premier nombre nécéssaire a l'opération\n");
                scanf("%f" ,&nombre1);
                printf("Entrez le second nombre nécéssaire a l'opération\n");
                scanf("%f",&nombre2);
                (resultat=nombre1-nombre2);
                printf ("le resultat est %f\n",resultat);
                printf("merci d'avoir utilisé la calculatrice d'alexandre\n\n");
                printf("souhaitez vous effectuer une autre opération ?\n");
                printf("1 OUI , 0 NON \n");
                scanf("%d",&continuer);
            }//else if choix 2
            else if (choix==3)
            {//début else if choix 3
                printf("Entrez le premier nombre nécéssaire a l'opération\n");
                scanf("%f" ,&nombre1);
                printf("Entrez le second nombre nécéssaire a l'opération\n");
                scanf("%f",&nombre2);
                (resultat=nombre1*nombre2);
                printf("merci d'avoir utilisé la calculatrice d'alexandre\n\n");
                printf("souhaitez vous effectuer une autre opération ?\n");
                printf("1 OUI , 0 NON \n");
                scanf("%d",&continuer);
                printf("le resultat est %f\n",resultat);
            }//fin else if choix 3
            else if (choix==4)
            {//début else if choix 4
                printf("Entrez le premier nombre nécéssaire a l'opération\n");
                scanf("%f" ,&nombre1);
                printf("Entrez le second nombre nécéssaire a l'opération\n");
                scanf("%f",&nombre2);
                (resultat=nombre1/nombre2);
                printf("le resultat est %f\n",resultat);
                printf("merci d'avoir utilisé la calculatrice d'alexandre\n\n");
                printf("souhaitez vous effectuer une autre opération ?\n");
                printf("1 OUI , 0 NON \n");
                scanf("%d",&continuer);
            }// fin else if choix 4
            else if (choix >4)
            {//début else
                printf("Erreur , Merci de recommencer\n");
            }//fin else
            
            
            
            
        } while (continuer==1);//fin do ... while
        
        
        
     return 0;
    }

    Merci de m'avoir lu!

    Alex

    • Partager sur Facebook
    • Partager sur Twitter
      19 août 2017 à 18:52:40

      pourquoi pas une boucle do ... while englobant les lignes 12 à 19 dont tu ne sortirais que si le choix est dans le bon intervalle?

      -
      Edité par zoup 19 août 2017 à 18:53:10

      • Partager sur Facebook
      • Partager sur Twitter
        19 août 2017 à 20:34:41

        Salut zoup !
        je vais essayer ca ! 

        Merci à toi de m'avoir lu et répondu.

        • Partager sur Facebook
        • Partager sur Twitter
          20 août 2017 à 14:52:20

          Hello,

          En-dehors de ton problème, ne trouves-tu pas que tu as du code en trop ? Regarde les lignes 23-26, 36-39, 49-52 et 62-66. De même, lignes 28-32, 41-45, 54-58 (où tu dois mettre la ligne 58 après la ligne 53) et 67-71. Faire des fonctions serait une bonne chose.

          Autre chose: et si tu ajoutes un calcul de pgcd, de ppcm ou de modulo etc.... tu vas continuer avec des else if ? Un switch serait bien plus adapté, plus lisible et plus aisément modifiable.

          -
          Edité par edgarjacobs 20 août 2017 à 14:53:15

          • 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

            21 août 2017 à 1:07:20

            Salut edgar , 
            merci de ton feedback je regarde ça de suite

            je suis un peu blasé , je me suis fait baser sévère sur les notes du premier chapitre car je n'ai pas fait le choix de la difficultée

            et les gens me disent que les accents ne passe pas alors que sur Xcode , si ..... donc bon ...
            je sais pas ..

            • Partager sur Facebook
            • Partager sur Twitter

            Calculette en boucle.

            × 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