Partage
  • Partager sur Facebook
  • Partager sur Twitter

|C| Avec les if

Un petit noob qui poste ;)

Sujet résolu
    8 décembre 2005 à 20:13:04

    Tout d'abord, coucou la communauté foromique, c'est mon premier poste ;)
    Je requiert votre aide, j'espere une réponse rapide, bien que vous etes surchargés avec tous ces petits Zéros qui arrivent avec les nouveaux cours de mathéo ( dont MOI :p )
    Si la réponse n'est pas rapide, tant pis, toute facon je peux pas vous forcer !!!
    Je vous montre mon code :


    //la partie du début que-je-met-parcequ'on-ma-dit mais dont j'ignore un
     //peu l'utilité ;) ( on verra ca plus tard )
    #include <stdio.h>
    #include <stdlib.h>
    int main(int argc, char *argv[])
    {
      double choix=0, nombres=0, premier=0, deuxieme=0, troisieme=0, addition=0;
      printf("Que veux tu effectuer ?\n1) Une addition ?\n2) Une soustraction ? \n3) Une multiplication ?\n4) une division ?\n");
      scanf("%lf", &choix);
     
      printf("Combien de nombres souhaites-tu additioner ?\n");
      scanf("%lf", &nombres);
     
     
                if( nombres = 2)
        {
                   printf("Donne le premier :");
                   scanf("%lf", &premier);
                   printf("Donne le second :");
                   scanf("%lf", &deuxieme);
                   addition = premier + deuxieme;
                   printf("Resultat :\n %lf + %lf = %lf\n", premier, deuxieme, addition);
       }
     
               if ( nombres = 3)
       {
                   printf("Donne le premier :");
                   scanf("%lf", &premier);
                   printf("Donne le second :");
                   scanf("%lf", &deuxieme);
                   printf("Donne le troisieme :");
                   scanf("%lf", &troisieme);
                   addition = premier + deuxieme + troisieme;
                   printf("Resultat :\n %lf + %lf + %lf = %lf\n", premier, deuxieme, troisieme, addition);
       
       }

       else
       {
       printf("Merci d'avoir utilise cette calculatrice toute pourrie\n");
       }
           system("PAUSE");   
      return 0;
     }


    Vous l'aurez compris, je le pense, ( du moins si vous n'etes pas un zéro zéro zéro qui n'a pas suivit les cours :colere: ) c'est une sorte de début de programme pour faire une calculatrice ( aucune utilitée, juste pour m'entrainer ).
    Malheuresement, le "If" pause pour moi de nombreux problèmes, et j'ai beaucoup de mal a comprendre les explications autres que mathéo ( nombre sont plutôt adressés a des gens qui connaissent déja bien la programmation ). Si vous pouviez m'expliquer vite fait, en 2 3 mots, le fonctionement lorsqu'on a plusieurs if, je vous en serait très beaucoup reconnaissants :p

    Edit : en parcourent le forum, j'avais bien cru comprendre qu'il y a des "while" ou des "else" mieux placés, mais je n'ai pas bien compris.
    Pas taper, cce n'est pas du "free post", enfin je ne crois pas :-°

    Re-Edit: avec le Zcode, et avec mes excuses :D

    Re-re-Edit: en fait, je m'apperçoit tout bete que je ne vous ai pas expliquer ce que ce programme faisait lorsqu'il était lancé :
    il se lance ( logique ) me demande la question ( que choisis tu ? et quelque soit ma réponse, il continue sur sa lancer, demande le premier et le deuxieme chiffre, donne le résultat, et me demande 3 autres chiffres, et me donne le résultat, en fait il fait toutes les conditions
    • Partager sur Facebook
    • Partager sur Twitter
      8 décembre 2005 à 20:14:36

      Stp utilise les balises zcode "< code >" que tu trouves en dessous de gras/italique et compagnie car en texte pur c'est illisible.

      Ensuite, tu le verras plus tard dans le cours ou les exemples des autres, un test c'est == et pas = qui lui sert d'affectation.
      • Partager sur Facebook
      • Partager sur Twitter
        8 décembre 2005 à 20:18:03

        aprés le premier if au lieu de mettre encore if tu mets else if
        puis pour ton dernier else mets plutôt:
        else
        {
        }
        printf("Merci d'avoir utilise cette calculatrice toute pourrie\n");
        system("PAUSE");
        return 0;


        Comme même aprés que l'utilisateur à fait son calcul ta le petit message ^^
        • Partager sur Facebook
        • Partager sur Twitter
          8 décembre 2005 à 20:20:34

          <code type="c">


          ça ira mieux on aura la couleur et tout et tout... (tu pouvais le choisir dans la liste)
          • Partager sur Facebook
          • Partager sur Twitter
            8 décembre 2005 à 20:27:32

            Citation : Kayl

            <code type="c">



            ça ira mieux on aura la couleur et tout et tout... (tu pouvais le choisir dans la liste)



            c'est fait ;)

            Hm, merci des conseils ?? mais :
            //directives de préprocesseur
            #include <stdio.h>
            #include <stdlib.h>
            int main(int argc, char *argv[])
            {
              double choix=0, nombres=0, premier=0, deuxieme=0, troisieme=0, addition=0;
              printf("Que veux tu effectuer ?\n1) Une addition ?\n2) Une soustraction ? \n3) Une multiplication ?\n4) une division ?\n");
              scanf("%lf", &choix);
             
              printf("Combien de nombres souhaites-tu additioner ?\n");
              scanf("%lf", &nombres);
             
             
                        if( nombres = 2)
                {
                           printf("Donne le premier :");
                           scanf("%lf", &premier);
                           printf("Donne le second :");
                           scanf("%lf", &deuxieme);
                           addition = premier + deuxieme;
                           printf("Resultat :\n %lf + %lf = %lf\n", premier, deuxieme, addition);
               }
             
                       else if( nombres = 3)
               {
                           printf("Donne le premier :");
                           scanf("%lf", &premier);
                           printf("Donne le second :");
                           scanf("%lf", &deuxieme);
                           printf("Donne le troisieme :");
                           scanf("%lf", &troisieme);
                           addition = premier + deuxieme + troisieme;
                           printf("Resultat :\n %lf + %lf + %lf = %lf\n", premier, deuxieme, troisieme, addition);
               
               }
            else
            {
            }
            printf("Merci d'avoir utilise cette calculatrice toute pourrie\n");
            system("PAUSE");
            return 0;
                   system("PAUSE");   
              return 0;
             }


            Ne me fait QUE la premiere condition :colere:
            la deuxieme passe a la trape, et la premiere se fait meme si "nombres" est différent de 2 ?
            • Partager sur Facebook
            • Partager sur Twitter
              8 décembre 2005 à 20:29:44

              Relis la 2ème partie de mon 1er post à propos du =
              • Partager sur Facebook
              • Partager sur Twitter
                8 décembre 2005 à 21:02:34

                Merci beaucoup ! en fait je ne l'avais pas compris ;)
                maintenant c'est bon ;)
                • Partager sur Facebook
                • Partager sur Twitter
                  8 décembre 2005 à 21:04:09

                  oui dans les conditions tu dois avoir:
                  ex:
                  if (variable == 0)
                  ...
                  • Partager sur Facebook
                  • Partager sur Twitter
                    8 décembre 2005 à 21:58:52

                    Hop, je revient a la charge... avec un nouveau script !

                    //directives de préprocesseur
                    #include <stdio.h>
                    #include <stdlib.h>
                    int main(int argc, char *argv[])
                    {  double choix=0, nombres=0, premier=0, deuxieme=0, troisieme=0, quatrieme=0, addition=0;
                      printf("Que veux tu effectuer ?\n1) Une addition ?\n2) Une soustraction ? \n3) Une multiplication ?\n4) une division ?\n");
                      scanf("%lf", &choix);
                        if(choix == 1)
                     {
                      printf("Combien de nombres souhaites-tu additioner ?\n");
                      scanf("%lf", &nombres);
                     
                     
                                if( nombres ==2)
                        {
                                   printf("Donne le premier :");
                                   scanf("%lf", &premier);
                                   printf("Donne le second :");
                                   scanf("%lf", &deuxieme);
                                   addition = premier + deuxieme;
                                   printf("Resultat :\n %lf + %lf = %lf\n", premier, deuxieme, addition);
                       }
                     
                               else if( nombres == 3)
                       {
                                   printf("Donne le premier :");
                                   scanf("%lf", &premier);
                                   printf("Donne le second :");
                                   scanf("%lf", &deuxieme);
                                   printf("Donne le troisieme :");
                                   scanf("%lf", &troisieme);
                                   addition = premier + deuxieme + troisieme;
                                   printf("Resultat :\n %lf + %lf + %lf = %lf\n", premier, deuxieme, troisieme, addition);
                       
                       }
                        else if( nombres ==4)
                        {
                                   printf("Donne le premier :");
                                   scanf("%lf", &premier);
                                   printf("Donne le second :");
                                   scanf("%lf", &deuxieme);
                                   printf("Donne le troisieme :");
                                   scanf("%lf", &troisieme);
                                   printf("Donne le quatrieme :");
                                   scanf("%lf", &quatrieme);
                                   addition = premier + deuxieme + troisieme + quatrieme;
                                   printf("Resultat :\n %lf + %lf + %lf + %lf = %lf\n", premier, deuxieme, troisieme, quatrieme, addition);
                       }
                       else if( nombres > 4)
                       {
                                printf("Prends ta caltoche windows et fait pas chier ;)\n\n\n\n");
                       }
                     } 
                    else if(choix==2)
                      printf("Combien de nombres ");
                      scanf("%lf", &nombres);
                      {
                         if( nombres ==2)
                        {
                                   printf("Donne le premier :");
                                   scanf("%lf", &premier);
                                   printf("Donne le second :");
                                   scanf("%lf", &deuxieme);
                                   addition = premier - deuxieme;
                                   printf("Resultat :\n %lf - %lf = %lf\n", premier, deuxieme, addition);
                       }
                       
                         else if( nombres ==3)
                        {
                                   printf("Donne le premier :");
                                   scanf("%lf", &premier);
                                   printf("Donne le second ( il sera soustrait au premier ) :");
                                   scanf("%lf", &deuxieme);
                                   printf("Donne le troiseme ( il sera soustrait au résultat de la première opération :");
                                   scanf("%lf", &troisieme);
                                   addition = premier - deuxieme - troisieme;
                                   printf("Resultat :\n %lf - %lf - %lf= %lf\n", premier, deuxieme, troisieme, addition);
                       }
                       else if( nombres >3)
                       {
                                printf("Utilise ton cerveau...\nOu va chercher ta casio !!!!!");
                       }
                      }         
                         else if( choix==3)
                         printf("Combien de termes a multiplier ?");
                         scanf("%lf", &nombres);   
                       {
                         if( nombres ==2)
                        {
                                   printf("Donne le premier terme:");
                                   scanf("%lf", &premier);
                                   printf("Donne le second:");
                                   scanf("%lf", &deuxieme);
                                   addition = premier * deuxieme;
                                   printf("Resultat :\n %lf * %lf = %lf\n", premier, deuxieme, addition);
                       }
                       else if( nombres ==3)
                        {
                                   printf("Donne le premier terme:");
                                   scanf("%lf", &premier);
                                   printf("Donne le second:");
                                   scanf("%lf", &deuxieme);
                                   printf("et le troisieme:");
                                   printf("%lf", &troisieme);
                                   addition = premier * deuxieme * troisieme;
                                   printf("Resultat :\n %lf x %lf x %lf = %lf\n", premier, deuxieme, troisieme, addition);
                       }
                        else if( nombres >3)
                        {
                                   printf("Utilise ta caltoche.... N44B");
                       }
                            else if( choix==4)

                        {
                                   printf("Donne le premier terme:");
                                   scanf("%lf", &premier);
                                   printf("Donne le diviseur:");
                                   scanf("%lf", &deuxieme);
                                   addition = premier / deuxieme;
                                   printf("Resultat :\n %lf/* %lf = %lf\n", premier, deuxieme, addition);
                       }
                     }   

                    printf("Merci d'avoir utilise cette calculatrice toute pourrie\n");
                    system("PAUSE");
                    return 0;
                           system("PAUSE");   
                      return 0;
                     }


                    il y a apperement un } ou un { en trop, mais je les ai comptés et selon moi le compte est exacte.. non ?

                    Celui qui serait en trop est celui situé après "utilise ton cervo ou prends ta casio" ( vers dont je suis très fier dailleurs ^^ )
                    Mais lorsque je l'enleve, le programme ne marche pas, CAD la multi / division n'est pas prise en compte ?? o_O:colere:
                    • Partager sur Facebook
                    • Partager sur Twitter
                      13 décembre 2005 à 14:54:27

                      Voila mon petit le code final.
                      Chez moi il marche. Relis ton code... Tu t es trompe sur pas mal de "{" et "}" tu les fermais au lieu de les ouvrir ou le contraire... Mais bon voila le code:

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

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

                      {
                         
                        double choix=0, nombres=0, premier=0, deuxieme=0, troisieme=0, quatrieme=0, addition=0;
                       
                        printf("Que veux tu effectuer ?\n1) Une addition ?\n2) Une soustraction ? \n3) Une multiplication ?\n4) une division ?\n");
                        scanf("%lf", &choix);
                         
                          if(choix == 1)
                       {
                        printf("Combien de nombres souhaites-tu additioner ?\n");
                        scanf("%lf", &nombres);
                      }
                       
                                  if(nombres ==2 )
                          {
                                     printf("Donne le premier : ");
                                     scanf("%lf", &premier);
                                     printf("Donne le second : ");
                                     scanf("%lf", &deuxieme);
                                     addition = premier + deuxieme;
                                     printf("Resultat :\n %lf + %lf = %lf\n", premier, deuxieme, addition);
                         }
                      if(nombres == 3 )
                         {
                                     printf("Donne le premier : ");
                                     scanf("%lf", &premier);
                                     printf("Donne le second : ");
                                     scanf("%lf", &deuxieme);
                                     printf("Donne le troisieme : ");
                                     scanf("%lf", &troisieme);
                                     addition = premier + deuxieme + troisieme;
                                     printf("Resultat :\n %lf + %lf + %lf = %lf\n", premier, deuxieme, troisieme, addition);
                         }
                      if(nombres ==4)
                          {
                                     printf("Donne le premier : ");
                                     scanf("%lf", &premier);
                                     printf("Donne le second : ");
                                     scanf("%lf", &deuxieme);
                                     printf("Donne le troisieme : ");
                                     scanf("%lf", &troisieme);
                                     printf("Donne le quatrieme : ");
                                     scanf("%lf", &quatrieme);
                                     addition = premier + deuxieme + troisieme + quatrieme;
                                     printf("Resultat :\n %lf + %lf + %lf + %lf = %lf\n", premier, deuxieme, troisieme, quatrieme, addition);
                         }
                      if(nombres > 4)
                         {
                                  printf("Prends ta caltoche windows et fait pas chier ;)\n\n\n\n");
                         } 
                      else if(choix == 2 )
                      {
                        printf("Combien de nombres ");
                        scanf("%lf", &nombres);
                      }
                           if(nombres == 2 )
                          {
                                     printf("Donne le premier : ");
                                     scanf("%lf", &premier);
                                     printf("Donne le second : ");
                                     scanf("%lf", &deuxieme);
                                     addition = premier - deuxieme;
                                     printf("Resultat :\n %lf - %lf = %lf\n", premier, deuxieme, addition);
                         }
                      if(nombres == 3 )
                          {
                                     printf("Donne le premier : ");
                                     scanf("%lf", &premier);
                                     printf("Donne le second (il sera soustrait au premier) : ");
                                     scanf("%lf", &deuxieme);
                                     printf("Donne le troiseme (il sera soustrait au résultat de la première opération) : ");
                                     scanf("%lf", &troisieme);
                                     addition = premier - deuxieme - troisieme;
                                     printf("Resultat :\n %lf - %lf - %lf = %lf\n", premier, deuxieme, troisieme, addition);
                         }
                      if(nombres >3)
                         {
                                  printf("Utilise ton cerveau...\nOu va chercher ta casio !!!!!");
                         }         
                      else if(choix == 3 )
                      {
                           printf("Combien de termes a multiplier ?");
                           scanf("%lf", &nombres);   
                      }
                           if(nombres == 2 )
                          {
                                     printf("Donne le premier terme: ");
                                     scanf("%lf", &premier);
                                     printf("Donne le second: ");
                                     scanf("%lf", &deuxieme);
                                     addition = premier * deuxieme;
                                     printf("Resultat :\n %lf * %lf = %lf\n", premier, deuxieme, addition);
                         }
                      if(nombres == 3 )
                          {
                                     printf("Donne le premier terme: ");
                                     scanf("%lf", &premier);
                                     printf("Donne le second: ");
                                     scanf("%lf", &deuxieme);
                                     printf("et le troisieme: ");
                                     printf("%lf", &troisieme);
                                     addition = premier * deuxieme * troisieme;
                                     printf("Resultat :\n %lf * %lf * %lf = %lf\n", premier, deuxieme, troisieme, addition);
                         }
                      if(nombres > 3 )
                          {
                                     printf("Utilise ta caltoche.... N44B");
                         }
                      else if(choix == 4 )
                          {
                                     printf("Donne le premier terme:");
                                     scanf("%lf", &premier);
                                     printf("Donne le diviseur:");
                                     scanf("%lf", &deuxieme);
                                     addition = premier / deuxieme;
                                     printf("Resultat :\n %lf / %lf = %lf\n", premier, deuxieme, addition);
                         }   

                      printf("Merci d'avoir utilise cette calculatrice toute pourrie\n");

                      system("PAUSE");
                      return 0;
                      }

                      Bon amuse toi bien et bonne continuation.
                      @++ ;)
                      • Partager sur Facebook
                      • Partager sur Twitter
                        13 décembre 2005 à 15:58:13

                        Pour ne pas s'embrouiller avec une multitude de else if, et pour que la ligne ne fasse pas 1000 colonnes (rappel : une convention qui respecte consiste à ne pas faire de lignes de plus de 80 colonnes), on peut utiliser le switch :

                        pas bien

                        if(test == 1)
                        {
                           truc1;
                        }
                        else
                        {
                            if(test == 2)
                            {
                                 truc2;
                            }
                            else
                            {
                                if(test == 3)
                                {
                                    truc3;
                                }
                            }
                        }


                        pas beaucoup mieux (mais plus sympa à lire)


                        if(test == 1)
                        {
                           truc1;
                        }
                        if(test == 2)
                        {
                           truc2;
                        }
                        if(test == 3)
                        {
                           truc3;
                        }


                        <gras>bien:</gras


                        switch(test)
                        {
                           case 1 :
                               truc1;
                           break;

                           case 2 :
                               truc2;
                           break;

                           case 3 :
                               truc3;
                           break;
                        }


                        L'avantage du switch est plus marqué dans un exemple réel, où mes truc sont sur plusieurs lignes. Et d'autant plus marqué qu'il n'y a de possibilités (3, ca va encore).

                        Attention qu'on ne peut switcher que des variables entières ([unsigned] long/short int, char).
                        • Partager sur Facebook
                        • Partager sur Twitter
                          13 décembre 2005 à 16:15:13

                          pour ma part j'utilise plus souvent switch et while qui sont bien plus intéressant pour ton programme.

                          le while() s'utilise comme ca :
                          while (condition)
                          {
                              //ce que tu veux faire
                          } //fin du while


                          en fait while() peut etre traduit par "tant que *condition* fais ca
                          • Partager sur Facebook
                          • Partager sur Twitter
                            13 décembre 2005 à 20:14:58

                            Merci beaucoup a tous pour votre aide !!! ^^
                            Non seulement le problème est corrigé, mais en plus il est bien expliqué et vous venez de m'apprendre une nouvelle notion :p


                            Question de zéro numéro 2) comment indiquer a tout le monde que mon problème est reglé ???
                            • Partager sur Facebook
                            • Partager sur Twitter
                              13 décembre 2005 à 20:52:50

                              en bas de la page de ton sujet, y a trois otpions (juste avant le nombre de zéros en ligne et le changement de design etc...)
                              l'une de ces options c'est "Indiquer que mon problème est résolu "
                              tu cliques dessus et voila :)
                              • Partager sur Facebook
                              • Partager sur Twitter
                                13 décembre 2005 à 21:10:27

                                Hop, c'est fait, merci bien
                                • Partager sur Facebook
                                • Partager sur Twitter

                                |C| Avec les if

                                × 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