Problème sur ce petit code C

Bonjour,

j'ai besoin d'aide sur ce code C. Il bloque au niveau du else. C'est tout petit programme mais j'avoue que je suis bloqué.

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

void rejouer();

int main()
{
char reponse[10]={0};

scanf("%ls",&reponse);

if(reponse=="O"||reponse=="o")
{
Jeu();
}
else if(reponse=="N"||reponse=="n");
{
printf("Mercis pour tout! Armel M., le concepteur\n\n");
exit(0);
}
else
{
printf("Veuillez tapez O ou N!\n");
rejouer();
};
return 0;
}

4 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour

    1 - Le "elseif" n'existe pas en C.
    2 - Il ne devrait pas y avoir de point-virgule à la fin de
    else if(reponse=="N"||reponse=="n"); 

    3 - Mais surtout, on n'utilise pas == pour comparer deux chaînes !
    Soit on compare deux caractères avec
    if(reponse[0]=='O'||reponse[0]='o') 
    Soit on compare deux chaînes avec
    if(strcmp(reponse,"O")==0 || strcmp(reponse,"o")==0) 
    1. je pense que ton problème vient du point-virgule après l'accolade fermante du else :

      else
      {
      printf("Veuillez tapez O ou N!\n");
      rejouer();
      };
      1. Des deux Else ! :)
      2. ça règle ton problème ?
    2. Rien à faire supernico. le point virgule :
      {
      printf("Veuillez tapez O ou N!\n");
      rejouer();
      }; n'a rien à voir avec le problème. Au contraire, l'enlever c'est introduire d'autres problèmes. J'ai essayé.
      Mine de rien c'est un problème assez embêtant. J'ai commencé à me demander si le problème ne venait pas de mon compilateur, ce qui étais faut pcq le petit programme "hello" s'exécute bien.
      1. tu as une erreur de compilation ? (laquelle ?) ou ça compile mais ton programme ne fait pas ce que tu veux ?
    3. Salut,
      Comme le dis supernico, le point virgule devrait poser problème.
      Ensuite, je ne suis pas sur de ce que je dis, mais :

      else if(reponse=="N"||reponse=="n");
      {
      printf("Mercis pour tout! Armel M., le concepteur\n\n");
      exit(0);
      }

      Essaye d'attacher "elseif", et pas "else if"
      (J'ai pas fait de C depuis quelques temps, donc pas sur à 100% que ce soit ça)