Problème sur ce petit code C

Fermé
mumberea - 31 oct. 2011 à 09:10
 le père - 2 nov. 2011 à 15:35
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;
}



A voir également:

4 réponses

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
supernico Messages postés 513 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 20 novembre 2011 193
Modifié par supernico le 31/10/2011 à 09:44
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
Des deux Else ! :)
0
supernico Messages postés 513 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 20 novembre 2011 193
31 oct. 2011 à 11:09
ça règle ton problème ?
0
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
supernico Messages postés 513 Date d'inscription dimanche 30 décembre 2007 Statut Membre Dernière intervention 20 novembre 2011 193
2 nov. 2011 à 07:41
tu as une erreur de compilation ? (laquelle ?) ou ça compile mais ton programme ne fait pas ce que tu veux ?
0
BigJoh Messages postés 3 Date d'inscription vendredi 14 octobre 2011 Statut Membre Dernière intervention 22 décembre 2011 1
2 nov. 2011 à 09:56
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