C/c++,programme

Bonjour,je cherche a programmer:

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

int main(int argc, char *argv[])
{
long choixmenus;
printf ("\nsupermariobros\n");
printf ("\nsnack\n");
printf ("\nsonic\n");
printf ("\ncall of duty\n");
printf ("\n\nvotre chois\n\n")
scanf ("%ld", &choixmenus);

printf ("\n\n")

switch (choixmenus)
{
case 1:
printf ("oui,c'est un bon jeu")
break;
case 2:
printf ("pff,vous ete un amateur en jeuxvideo ou quoi?")
break;
case 3:
printf ("bon jeu d'aventure")
break;
case 4:
printf ("parfait,parfait;vous savez choisir les bon jeux vous!!!")
break;
default:
printf ("rien ne vous interresse?degager alors!!")
break;
}

system("PAUSE");
return 0;
}

MAIS IL Y A UN PROBLEME DANS SCANF,JE CHERCHE UNE SOLUTION MAIS JE TROUVE PAS.
aider moi
merci
Configuration: Windows XP
Internet Explorer 6.0

32 réponses

Résumé de la discussion

Un programme en C propose un menu et peut bloquer lors de scanf, rendant le choix via le switch fiable et logique selon l’entrée utilisateur. Plusieurs remarques discutent principalement d’erreurs de syntaxe et de type, notamment l’usage correct de l’adresse avec scanf et des deux-points dans les cases du switch. Certains suggèrent d’utiliser le format %ld pour un long et de passer l’adresse de la variable, d’autres insistent sur la nécessité d’écrire case 1: et ainsi de suite. En cas de doute, il peut aussi être utile de tester le scanf séparément et de vérifier la compilation, afin d’isoler l’emplacement exact du souci.

Bobot (l’IA à votre service)
  1. a bientot je pense que je vais lesser un peu sa parceque je crois que je suis enormement fatique
    merci et aurevoir
    0
    1. a bientot je pense que je vais lesser un peu sa parceque je crois que je suis enormement fatique
      merci et aurevoir
      0
      1. mais non j'ai pas oublier
        0
        1. quand je pars me coucher je me dis toujour de lesser tomber
          puis quend je me reveille et ben le contraire
          0
          1. Contributeur
            T'as oublié un point-virgule à break.
            Je te conseille vivement d'utiliser un bon IDE (code blocks par exemple). Ca te permettra de voir rapidement ces petites erreurs.
            0
            1. maintenant c'est
              break;
              le dernier
              0
              1. correct c'est ce que je dis je suis confu
                0
                1. je suis un peut confu
                  depuis ce matin que je travaille
                  je vais devenir fou-----------je vais lesser tomber ca vous croyer pas?

                  printf ("bon jeu");
                  0
                  1. le proble me de

                    case 1. printf ("bon jeu");
                    break;
                    case 2.
                    printf ("bon choix");
                    break;
                    case 3.
                    printf ("super jeu de strategie/guerre");
                    default:
                    printf ("vous aimer pas les jeux?alors degager")
                    break
                    }
                    0
                    1. Contributeur
                      Tu utilises des points au lieu de deux points pour tes case.
                      case 1:
                      0
                  2. merci mais tout le monde di qu'il faut passer par la pour pouvoir créé un jeu non?
                    0
                    1. ok merci
                      j'espere de ne pas vous derenger longtemps car l'autre que j'ai fait ne fonctionnais pas tre bien alors j'ai refait
                      deviner j'ai encore un prob.

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

                      int main(int argc, char *argv[])
                      {
                      long choixmenu;
                      printf ("1. supermariobros\n");
                      printf ("2. sonic\n");
                      printf ("3. worms\n");
                      printf ("votre choi?");
                      scanf ("%ld",&choixmenu);

                      switch (choixmenu)
                      {
                      case 1.
                      printf ("bon jeu");
                      break;
                      case 2.
                      printf ("bon choix");
                      break;
                      case 3.
                      printf ("super jeu de strategie/guerre");
                      default:
                      printf ("vous aimer pas les jeux?alors degager")
                      break
                      }

                      system("PAUSE");
                      return 0;
                      }
                      0
                      1. Contributeur
                        Non ce n'est pas le problème du system("PAUSE"); J'ai mis getchar() car c'est mieux.
                        Je pense que le problème venait d'un point-virgule oublié quelque part ou une bêtise du genre.
                        Je te conseille d'utiliser un éditeur te permettant de réaliser l'indentation. Tu le verras rapidement s'il manque un point-virgule. Ou même un bon IDE.
                        0
                        1. je pense que je vais le recommencer car il y a un gros prob.
                          il ne fonctionne pas comme il devrais
                          merci et aurevoir
                          0
                          1. c'est peut etre "getchar();" qui devais etre renplacer par pause?
                            0
                            1. merci maitenent ca fonctionne
                              mais je me demande bien ou etais le probleme?
                              0
                              1. oui j'ai rajouter aussi les poin mais pas marcher
                                je vais tester ce que tu ma doner
                                merci
                                0
                                1. Contributeur
                                  C'est bizarre car ton code ne contient pas d'erreurs hormis l'oubli de point-virgules que t'as signalé.
                                  Ce code marche sur ma machine ;) J'ai juste rajouté les point-virgules ainsi que remplacer system("PAUSE"); par getchar().
                                  #include <stdio.h>
                                  
                                  int main(void)
                                  {
                                      long choixmenus;
                                      printf ("\nsupermariobros\n");
                                      printf ("\nsnack\n");
                                      printf ("\nsonic\n");
                                      printf ("\ncall of duty\n");
                                      printf ("\n\nvotre chois\n\n");
                                      scanf ("%ld", &choixmenus);
                                  
                                      printf ("\n\n");
                                  
                                      switch (choixmenus)
                                      {
                                          case 1:
                                              printf ("oui,c'est un bon jeu");
                                              break;
                                          case 2:
                                              printf ("pff,vous ete un amateur en jeuxvideo ou quoi?");
                                              break;
                                          case 3:
                                              printf ("bon jeu d'aventure");
                                              break;
                                          case 4:
                                              printf ("parfait,parfait;vous savez choisir les bon jeux vous!!!");
                                              break;
                                          default:
                                              printf ("rien ne vous interresse?degager alors!!");
                                              break;
                                      }
                                  
                                      getchar();
                                      return 0;
                                  } 
                                  
                                  
                                  0
                                  1. vous avez une solution
                                    merci
                                    ou dois-je re-faire tout
                                    0
                                    • 1
                                    • 2