problème dans un petit programme (langage C)
Répondre à la discussion
Affichage des résultats 1 à 7 sur 7

problème dans un petit programme (langage C)



  1. #1
    benjgru

    problème dans un petit programme (langage C)


    ------

    Bonjour, j'ai fait un petit programme "nombre mystère" qui est un jeu où l'on doit deviner un nombre.
    Il marche, sauf à la fin quand on demande si on veut continuer la partie. En réponse booléenne (0/1) ça marche, mais en réponse français (oui/non) ça ne marche pas.
    Il doit y avoir un problème avec la chaîne de caractères...
    Merci .
    Ci-joint le programme (il calcule aussi le nombre de coups nécessaires avant de gagner et la moyenne arithmétique du nombre de coups nécessaires sur plusieurs parties.)

    Code:
    #include <stdio.h>
    #include <stdlib.h>
    #include <time.h>
    #include <string.h>
    
    int main ( int argc, char** argv)
    
    
    {
              float E,O,M;
              int R;
              char chaine[]="oui";
          do
        {
    
    
    
        int nombreMystere = 0, nombreEntre = 0;
        const int MAX = 10, MIN = 1;
    
    
        srand(time(NULL));
        nombreMystere = (rand() % (MAX - MIN + 1)) + MIN;
    
    
        int N=0;
        do
         {
    
    
         {
    
    
            printf("Quel est le nombre ? ");
            scanf("%d", &nombreEntre);
    
    
            if (nombreMystere > nombreEntre)
                printf("C'est plus !\n\n");
            else if (nombreMystere < nombreEntre)
                printf("C'est moins !\n\n");
            else
    
                     printf ("Bravo, vous avez trouve le nombre mystere !!!\n");
          N++;
          M++;
    
        }
         }
    
        while (nombreEntre != nombreMystere);
         printf ("En %d coups.\n",N);
         printf ("M=%f.\n",M);
    
    
         printf ("Continuer partie ?");
            scanf ("%s",&chaine );
          O++;
    
    
        }
    
        while (chaine=="oui");    // c'est là que ça déconne !!
       printf ("O=%f.\n",O);
       E= M/O;
       printf ("E=%f.\n",E);
    
    
       return 0;
    }

    -----
    Dernière modification par gienas ; 18/01/2019 à 14h54. Motif: Ajouté les balises code, obligatoires pour les programmes

  2. #2
    pm42

    Re : problème dans un petit programme (langage C)

    Tu ne peux pas comparer les chaines de caractères avec ==. Ca compare juste le pointeur, pas le contenu.
    Il faut utiliser strcmp.

  3. #3
    benjgru

    Re : problème dans un petit programme (langage C)

    Merci !
    <strcmp.h> est une bibliothèque je suppose ?

    Ah zut je viens de commencer le C et j'ignore tout des pointeurs... je vais me renseigner de suite.

  4. #4
    pm42

    Re : problème dans un petit programme (langage C)

    Citation Envoyé par benjgru Voir le message
    <strcmp.h> est une bibliothèque je suppose ?
    Non, strcmp est une fonction. Elle est définie par #include <string.h>

  5. A voir en vidéo sur Futura
  6. #5
    benjgru

    Re : problème dans un petit programme (langage C)

    OK.
    Il faut déclarer une variable "strcmp" puisque c'est un booléen je vois ?

  7. #6
    pm42

    Re : problème dans un petit programme (langage C)

    Citation Envoyé par benjgru Voir le message
    Il faut déclarer une variable "strcmp" puisque c'est un booléen je vois ?
    Non. Tu as plein d'exemples sur le Net. Lis les et expérimente un peu.

  8. #7
    invite936c567e

    Re : problème dans un petit programme (langage C)

    Avant de lire les exemples, il serait même extrêmement utile de lire la documentation de référence du langage C.

    Pour rappel, la fonction strcmp() figurait déjà dans la première édition du manuel de Kernighan & Ritchie publiée en 1978, à la page 101.

Discussions similaires

  1. petit problème en langage c
    Par invite5cea5e4c dans le forum Programmation et langages, Algorithmique
    Réponses: 9
    Dernier message: 03/05/2016, 20h02
  2. Petit problème de langage
    Par olympiquega dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 02/09/2014, 20h40
  3. petit problème dans mon programme python
    Par invite84fb3bc0 dans le forum Programmation et langages, Algorithmique
    Réponses: 2
    Dernier message: 05/01/2013, 15h13
  4. langage C: problème avec mon programme
    Par invite8b421ec7 dans le forum Programmation et langages, Algorithmique
    Réponses: 30
    Dernier message: 19/07/2011, 21h55