Partage
  • Partager sur Facebook
  • Partager sur Twitter

Petit probleme

Refus d'affichage

Sujet résolu
    12 janvier 2006 à 21:02:00

    Bonjour tout le monde ! J'ai un petit probleme, C'est que mon projet se lance, sans aucun probleme, mais arrivé a une boucle if...else if il refuse d'afficher le contenu !
    Voila mon code source :
    int main(int argc, char *argv[])
    {
        double choix = 0, compteur = 0
       
      printf("Comment se nomme la fameuse <<guerre eclair>> menee par les allemands\n");
      printf("de septembre a octobre 1939 ?\n\n");
      printf("-1- Blitzkrieg\n");
      printf("-2- Kriegblitz\n");
      printf("-3- Quick War\n\n");
      printf("Votre reponse : ");
      scanf("%ld", &choix);
     
      if (choix == 1){
                  printf("Bonne reponse !\n\n");
                  compteur++;
        }
                 
        else if (choix == 2){
                  printf("Mauvaise reponse ! La bonne reponse etait la -1-\n\n");
        }
       
        else if (choix == 3){
                  printf("Mauvaise reponse ! La bonne reponse etait la -1-\n\n");
        }


    Il refuse d'afficher le "Mauvaise reponse ! La bonne reponse etait la -1-" ou encore le "Bonne reponse !"

    Si vous pouviez m'aider ça serait cool ! Bye
    • Partager sur Facebook
    • Partager sur Twitter
      12 janvier 2006 à 21:11:38

      Changes tes variables et mets des long je pense ( car c'est un %ld ton scanf ) :euh:
      • Partager sur Facebook
      • Partager sur Twitter
        12 janvier 2006 à 21:11:52

        Utilise des var de type int plutôt que les doubles lorsque tu teste des égalités.
        • Partager sur Facebook
        • Partager sur Twitter
          12 janvier 2006 à 22:47:16

          Déjà je comprends pas pourquoi tu utilises compteur mais bon perso dans le code je l'ai supprimé :p Je ne comprends pas non plus pourquoi tu as if, else if, else... Comme tu as une seul bonne réponse sur trois et que les deux mauvaise réponses affiche la même chose tu peux remplacer çà par if, else.

          Voilà ton code corrigé, essaye de bien le comprendre, si tu n'as pas compris bien sûr ! :p

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

          int main(int argc, char *argv[])
          {
              long choix = 0; // Déclaration de la variable
             
            printf("Comment se nomme la fameuse <<guerre eclair>> menee par les allemands\n");
            printf("de septembre a octobre 1939 ?\n\n");
            printf("-1- Blitzkrieg\n");
            printf("-2- Kriegblitz\n");
            printf("-3- Quick War\n\n");
            printf("Votre reponse : ");
            scanf("%ld", &choix); // Recuperation de la réponse choisie
           
            if (choix == 1){ // Si le choix est 1 alors c'est la bonne réponse
                        printf("Bonne reponse !\n\n");
            }
            else /* sinon si ce n'est pas égal à 1 forcement toutes les autres réponses
                 sont mauvaise, donc sa comprend 2 et 3 */

            {
                        printf("Mauvaise reponse ! La bonne reponse etait la -1-\n\n");       
            }           
             
            system("PAUSE");     
            return 0;
          }
          • Partager sur Facebook
          • Partager sur Twitter
            13 janvier 2006 à 13:17:32

            Merci Black_Hack_White, maintenant ça marche. C'est vrai que je me suis un peu trop compliqué ^^

            Citation : Black_Hack_White

            Déjà je comprends pas pourquoi tu utilises compteur mais bon perso dans le code je l'ai supprimé


            o_O lol c'est tout simplement parce que a la fin de mes 5 questions, je veux afficher a l'utilisateur le nombre de reponses juste !

            Bon baaa merki et a+ ;)
            • Partager sur Facebook
            • Partager sur Twitter
              13 janvier 2006 à 16:12:13

              tu deverais rajouter un 2eme compteur pour les reponses fausse

              sinon dans les if tu devrai faire comme ca
              if (choix == 1)
              {
              ...
              }
              else if (choix == 2 || choix == 3)
              {
              ...
              }
              else
              {
              et la tu met ton code si la reponse de l'utilisateur n'est pas dans le qcm
              }

              • Partager sur Facebook
              • Partager sur Twitter
                13 janvier 2006 à 16:20:45

                 

                char reponse;

                question1:;

                reponse = 0;
                system("cls");

                printf("Comment se nomme la fameuse <<guerre eclair>> menee par les allemands\n");
                  printf("de septembre a octobre 1939 ?\n\n");
                  printf("-1- Blitzkrieg\n");
                  printf("-2- Kriegblitz\n");
                  printf("-3- Quick War\n\n");
                  printf("Votre reponse : ");
                  scanf("%ld", &choix);

                switch (reponse) {

                   case '1' : /* ... */ break;
                   case '2' : /* ... */ break;
                   case '3' : /* ... */ break;

                   default : goto question1;

                   }
                • Partager sur Facebook
                • Partager sur Twitter

                Petit 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