Problème sur ce petit code C

mumberea -  
 le père -
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

  1. le père
     
    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
  2. supernico Messages postés 584 Statut Membre 193
     
    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();
    };
    0
    1. Max
       
      Des deux Else ! :)
      0
    2. supernico Messages postés 584 Statut Membre 193
       
      ça règle ton problème ?
      0
  3. mumberea
     
    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.
    0
    1. supernico Messages postés 584 Statut Membre 193
       
      tu as une erreur de compilation ? (laquelle ?) ou ça compile mais ton programme ne fait pas ce que tu veux ?
      0
  4. BigJoh Messages postés 5 Statut Membre 1
     
    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)
    0