Partage
  • Partager sur Facebook
  • Partager sur Twitter

Problême TP "Plus ou moin ?"

    1 février 2006 à 14:48:58

    Bonjour tout le monde!
    Voila en fait je post car je suis en train de lir eles chapitres sur le C et j'ai un problême avec pause (enfin je crois que c'est ça), à TOUTS mes "programmes" (si je peux déjà les appeler comme ça :D )
    Voila je montre mon code source :
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>

    int main(int argc, char**argv)
    {
      long nombreMystere = 0, nombreEntre = 0;
      const long MAX = 100, MIN = 1;
     
      srand(time(NULL));
      nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
       do
        {
         printf("Entre un nombre : ");
         scanf("%ld",nombreEntre);
         if (nombreMystere > nombreEntre)
         printf("C'est moin !\n\n");
         else if (nombreEntre < nombreMystere)
         printf("C'est plus !\n\n");
         else
         printf("Bravo tu as trouvé!\n\n");
        } while (nombreEntre != nombreMystere);
      system("PAUSE");
      return 0;     
    }



    Voila en fait le problême, il est mi "Entre un nombre :", je met un nombre mais dès que j'appuie sur [ENTER] , la fenêtre se ferme.
    Pourriez-vous m'aider?
    Merci d'avance !
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      1 février 2006 à 14:51:35

      Euh il ne faut pas mettre return 0; sous le systeme pause?
      • Partager sur Facebook
      • Partager sur Twitter
        1 février 2006 à 14:52:58

        Oups si mais je l'avais enlevé mais ça ne va toujours pas ...
        • Partager sur Facebook
        • Partager sur Twitter
          1 février 2006 à 14:55:36

          Tu n'as pas mis de "&" devant ton scanf, déjà.
          • Partager sur Facebook
          • Partager sur Twitter
          Anonyme
            1 février 2006 à 14:56:53

            Euh sinon je sais pas si c'est possible de mettre des conditions de cette façons (enfin quand il y a plus qu'un simple if...else).

            Ah et ton scanf est faux! Tu as oublié le signe & devant la variable nombreEntree

            ps: j'ai était grillé.... (saleté de pc qui met une heure à envoyer un message avec du 2 méga.....)
            • Partager sur Facebook
            • Partager sur Twitter
              1 février 2006 à 14:59:23

              Grillé the_fear :p^^

              Sinon, il n'y a pas de problème pour ses conditions, même si personnellement j'aurais mis des accolades pour plus de lisibilité. (mais comme y'a qu'une instruction elles sont pas obligatoires)
              • Partager sur Facebook
              • Partager sur Twitter
                1 février 2006 à 16:18:02

                Au lieu de mettre system("pause");
                Tu peux essayer de mettre getchar();
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  1 février 2006 à 16:46:03

                  voilà ma version de PLUS ou MOINS:



                  /*

                                                      VERSION 1.3

                  Plus ou Moins
                  -------------

                  */


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


                  int main()
                  {

                      //début des "déclarations de variables" :

                          unsigned long nombreDeCoups = 1;
                          unsigned long MAX;
                          long choix;

                      //fin des "déclarations de variables".

                      do
                      {

                          //début de "indication sur le jeu" :

                              printf("===Bienvenu===\n\n");
                              printf("Je vous propose un petit jeu:\n");
                              printf("\"PLUS ou MOINS\"\n\n");
                              printf("Le but est simple :\n");
                              printf("Vous devez deviner le \"nombreMystere\" que l'ordinateur a defini au hasard.\n\n");
                              printf("Veuillez selectioner la valeur Maximale.\n");
                              printf("(la valeur minimale est 1.)");
                              printf("\tValeur MAX. : ");
                              scanf("%ld", &MAX);

                          //fin de "indication sur le jeu".

                          //début de "variables à définir" :

                              const unsigned long MIN = 1;/*constantes MIN (const) ne peut être négative (unsigned).*/

                                  //début de "création de variable hasard" :

                                  unsigned long nombreMystere = 0;
                                  srand(time(NULL));
                                  nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

                                  //fin de "création de variable hasard".

                              unsigned long nombre;

                          //fin de "variables à définir".

                      /*pour afficher *nombreMystere* : *printf("%ld : nombreMystere", nombreMystere);* */

                          //début de "préparation pour la boucle" :

                              printf("Entrez un nombre\n\n\t:");
                              scanf("%ld", &nombre);

                          //fin de "préparation pour la boucle".

                          //début de "la boucle while !=" :

                              while(nombre != nombreMystere)
                                  {

                                      //début de "if" :

                                          if(nombre < nombreMystere)
                                              {
                                                  nombreDeCoups ++;
                                                  printf("c'est plus grand.\n");
                                                  printf("reessayez.\n");
                                                  printf("\t");
                                                  scanf("%ld", &nombre);

                                              }

                                      //fin de "if".

                                      //début de "else if" :

                                          else if(nombre > nombreMystere)
                                              {
                                                  nombreDeCoups ++;
                                                  printf("c'est plus petit.\n");
                                                  printf("reessayez.\n");
                                                  printf("\t");
                                                  scanf("%ld", &nombre);
                                              }

                                      //fin de "else if".

                                  }

                          //fin de "la boucle while =!=".

                          //début de "la boucle ==" :

                              if(nombre == nombreMystere)
                                  {

                                      printf("\n\nBravo vous avez trouve le nombreMystere");
                                      printf("\nEn %ld coup(s)!)\n\n\n\n", nombreDeCoups);

                                  }

                          //fin de "a boucle ==".

                              printf("Voulez-vous rejouer?\n");
                              printf("Si oui, tappez 1.");
                              printf("\nSi non, tappez un autre nombre.\n\n\t\t");
                              printf("Votre choix : ");
                              scanf("%ld", &choix);
                              printf("\n\n\n\n\n\n");

                          }while(choix == 1);

                      system("PAUSE");
                          return 0;
                  }


                  J'ai fait quelques modifications au PLUS ou MOINS de base :
                  • le programme peut être recommencé si on en a envie sans le quitter.
                  • On peut choisir la valeur MAX.
                  • Quand on trouve le nombre mystère, le programme nous dit combient de coup(s) il nous a fallu pour le trouver.

                  :p
                  On peut dire que c'est long mais commenté!! ^^
                  P.S.:moins s'écrit avec un "S"...
                  • Partager sur Facebook
                  • Partager sur Twitter
                    1 février 2006 à 20:20:04

                    Met un & avant la variable qui est dans ton scanf ;) ça doit être ton OS qui ferme la fenêtre parce que tu as mal utilisé ton scanf (nan je sais très bien que c'est une histoire avec les adresses mais c'est un débutant alors je ne parle pas de choses compliquées pour lui ^^ )

                    EDIT: Arf, ça m'apprendra a ne pas lire tout ^^ En fait, ce code n'est pas trop long pour moi , hiura ;) Pour moi un code long est en.. Plusieurs fichiers :p Mais je ne vous embrouille pas trop, ah en fait, bonne chance pour la partie deux ;)

                    EDIT:

                    Citation : hiura


                    P.S.:moins s'écrit avec un "S"...


                    Citation : hiura



                    printf("===Bienvenu===\n\n");



                    Et bienvenue s'écrit avec un e :p Mais c'est vrai qu'il fait pas mal de fautes (je post (poste) , touts (tous) , etc.. )
                    • Partager sur Facebook
                    • Partager sur Twitter
                      1 février 2006 à 20:40:24

                      Citation : hiura

                      voilà ma version de PLUS ou MOINS:



                      /*

                                                          VERSION 1.3

                      Plus ou Moins
                      -------------

                      */


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


                      int main()
                      {

                          //début des "déclarations de variables" :

                              unsigned long nombreDeCoups = 1;
                              unsigned long MAX;
                              long choix;

                          //fin des "déclarations de variables".

                          do
                          {

                              //début de "indication sur le jeu" :

                                  printf("===Bienvenu===\n\n");
                                  printf("Je vous propose un petit jeu:\n");
                                  printf("\"PLUS ou MOINS\"\n\n");
                                  printf("Le but est simple :\n");
                                  printf("Vous devez deviner le \"nombreMystere\" que l'ordinateur a defini au hasard.\n\n");
                                  printf("Veuillez selectioner la valeur Maximale.\n");
                                  printf("(la valeur minimale est 1.)");
                                  printf("\tValeur MAX. : ");
                                  scanf("%ld", &MAX);

                              //fin de "indication sur le jeu".

                              //début de "variables à définir" :

                                  const unsigned long MIN = 1;/*constantes MIN (const) ne peut être négative (unsigned).*/

                                      //début de "création de variable hasard" :

                                      unsigned long nombreMystere = 0;
                                      srand(time(NULL));
                                      nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;

                                      //fin de "création de variable hasard".

                                  unsigned long nombre;

                              //fin de "variables à définir".

                          /*pour afficher *nombreMystere* : *printf("%ld : nombreMystere", nombreMystere);* */

                              //début de "préparation pour la boucle" :

                                  printf("Entrez un nombre\n\n\t:");
                                  scanf("%ld", &nombre);

                              //fin de "préparation pour la boucle".

                              //début de "la boucle while !=" :

                                  while(nombre != nombreMystere)
                                      {

                                          //début de "if" :

                                              if(nombre < nombreMystere)
                                                  {
                                                      nombreDeCoups ++;
                                                      printf("c'est plus grand.\n");
                                                      printf("reessayez.\n");
                                                      printf("\t");
                                                      scanf("%ld", &nombre);

                                                  }

                                          //fin de "if".

                                          //début de "else if" :

                                              else if(nombre > nombreMystere)
                                                  {
                                                      nombreDeCoups ++;
                                                      printf("c'est plus petit.\n");
                                                      printf("reessayez.\n");
                                                      printf("\t");
                                                      scanf("%ld", &nombre);
                                                  }

                                          //fin de "else if".

                                      }

                              //fin de "la boucle while =!=".

                              //début de "la boucle ==" :

                                  if(nombre == nombreMystere)
                                      {

                                          printf("\n\nBravo vous avez trouve le nombreMystere");
                                          printf("\nEn %ld coup(s)!)\n\n\n\n", nombreDeCoups);

                                      }

                              //fin de "a boucle ==".

                                  printf("Voulez-vous rejouer?\n");
                                  printf("Si oui, tappez 1.");
                                  printf("\nSi non, tappez un autre nombre.\n\n\t\t");
                                  printf("Votre choix : ");
                                  scanf("%ld", &choix);
                                  printf("\n\n\n\n\n\n");

                              }while(choix == 1);

                          system("PAUSE");
                              return 0;
                      }



                      J'ai fait quelques modifications au PLUS ou MOINS de base :

                      • le programme peut être recommencé si on en a envie sans le quitter.
                      • On peut choisir la valeur MAX.
                      • Quand on trouve le nombre mystère, le programme nous dit combient de coup(s) il nous a fallu pour le trouver.


                      :p
                      On peut dire que c'est long mais commenté!! ^^
                      P.S.:moins s'écrit avec un "S"...



                      Et alors ? On s'en bat un peu ^^ si tu veux présenter ton programme creer un new topic mais viens pas pollué un topic...
                      • Partager sur Facebook
                      • Partager sur Twitter
                        1 février 2006 à 21:26:55

                        Moi j'ai un peu améliorer la petite calculette, j'ai fait qu'on puisse choisir l'opération, je vous montre le code et dites moi si c'est la bonne manière SVP :
                        #include <stdio.h>
                        #include <stdlib.h>
                        long addition(long nombre1, long nombre2)
                        {
                         long resultat = 0 ;
                         resultat = nombre1 + nombre2 ;
                         return resultat;
                        }
                        long soustraction(long nombre1, long nombre2)
                        {
                         long resultat = 0 ;
                         resultat = nombre1 - nombre2 ;
                         return resultat;
                        }   
                        long division(long nombre1, long nombre2)
                        {
                         long resultat = 0 ;
                         resultat = nombre1 / nombre2 ;
                         return resultat;
                        }   
                        long multiplication(long nombre1, long nombre2)
                        {
                         long resultat = 0 ;
                         resultat = nombre1 * nombre2 ;
                         return resultat;
                        }   
                        int main()
                        {
                         printf(" Choisissez l'operation souhaitee (Ecrivez juste le numero correspondant) :\n 1. Addition\n 2. Soustraction\n 3. Division\n 4. Multiplication\n ");
                         long operation,nombre1,nombre2;
                         scanf("%ld", &operation);
                         printf("Choisissez le premier nombre : ");
                         scanf("%ld", &nombre1);
                         printf("Choisissez le deuxieme nombre : ");
                         scanf("%ld", &nombre2);
                        if(operation == 1) {
                          long resultat;
                          resultat = addition(nombre1,nombre2);
                          printf(" %ld + %ld = %ld\n\n\n\n\n\n\n\n\n", nombre1, nombre2, resultat);
                        }
                        else if(operation == 2) {
                          long resultat;
                          resultat = soustraction(nombre1,nombre2);
                          printf(" %ld - %ld = %ld\n\n\n\n\n\n\n\n\n", nombre1, nombre2, resultat);
                          }
                        else if(operation == 3) {
                          long resultat;
                          resultat = division(nombre1,nombre2);
                          printf(" %ld : %ld = %ld\n\n\n\n\n\n\n\n\n", nombre1, nombre2, resultat);
                          }
                        else if(operation == 4) {
                          long resultat;
                          resultat = multiplication(nombre1,nombre2);
                          printf(" %ld X %ld = %ld\n\n\n\n\n\n\n\n\n", nombre1, nombre2, resultat);
                         }
                         
                         system("PAUSE");
                         return 0;
                        }
                        • Partager sur Facebook
                        • Partager sur Twitter
                          1 février 2006 à 21:31:13

                          Euh...le topic porte sur "plus ou moins", alors soit je suis pas réveillé (ou déjà endormi plutôt^^), soit ton post n'a un peu rien à faire là^^.

                          Mais sinon, ben personnellement j'aurais utilisé switch, c'est plus simple, mais bon.
                          • Partager sur Facebook
                          • Partager sur Twitter
                            1 février 2006 à 21:33:43

                            J'ai programmé pendant quelque temps en PHP et j'ai eu l'habitude de mettre plutôt des if, else if, et else ...
                            • Partager sur Facebook
                            • Partager sur Twitter
                              1 février 2006 à 21:45:33

                              Je sais pas, je connais absolument pas le PHP^^.
                              Ceci dit, tu verras qu'en C le switch est bien plus pratique ('fin j'trouve^^). Mais tu peux faire des "else if" si tu veux, ca marche aussi bien. :)
                              • Partager sur Facebook
                              • Partager sur Twitter
                                1 février 2006 à 22:08:32

                                La base du C est presque identique a la base du PHP (php a copié le C, la honte :p ), il y a aussi des switch dans le php. Il y a juste les fonctions qui sont differentes. Peut être que tu n'as pas appris les switch en php ..

                                EDIT: En fait ça devient pas un peu HS :-°
                                • Partager sur Facebook
                                • Partager sur Twitter
                                  2 février 2006 à 6:56:23

                                  Bon dernier HS, il y a aussi switch, mais c'était tout le temps avec des if/elseif/else que je faisais mes conditions, et à voir les scripts sur le forum, je crois que je suis pas le seul :D
                                  • Partager sur Facebook
                                  • Partager sur Twitter

                                  Problême TP "Plus ou moin ?"

                                  × 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