Comparaisons entres variables dont l'une renseignée par scanf_s
Bonjour,
Un livre propose l'exercice suivant :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
| /*Exercice 11
Un personnage arrive devant une porte. Un gardien est devant lentrée. Il pose une question
au personnage. Si le personnage donne la bonne réponse il peut passer, sinon il est détruit.
Faire un programme qui traduise cette situation en langage C.
*/
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main()
{
int question, reponse;
srand(time(NULL)); // remplacé par : srand((unsigned int) time(NULL));
printf("le cerbère pose une question ... et\n");
question = 'a'+rand()%3; // pour a, b ou c
printf_s("question contient : %c\n", question); // ajouté pour contrôle
printf("le personnage a le choix entre les reponses a, b, c : ");
scanf("%c",&reponse); // scanf_s utilisé
printf_s("reponse contient : %c\n", reponse); // ajouté pour contrôle
if (reponse==question)
printf("vous avez la vie sauve\n");
else
printf("vous allez etre detruit\n");
return 0;
} |
Or la console renvoie ceci :
Code:
1 2 3 4 5 6
| le cerbÞre pose une question ... et
question contient : c
le personnage a le choix entre les reponses a, b, c : b
reponse contient :
vous allez etre detruit
Appuyez sur une touche pour continuer... |
Ou
Code:
1 2 3 4 5 6
| le cerbÞre pose une question ... et
question contient : b
le personnage a le choix entre les reponses a, b, c : 42
reponse contient :
vous allez etre detruit
Appuyez sur une touche pour continuer... |
Ou encore
Code:
1 2 3 4 5 6
| le cerbÞre pose une question ... et
question contient : c
le personnage a le choix entre les reponses a, b, c : c
reponse contient :
vous allez etre detruit
Appuyez sur une touche pour continuer... |
ou, en utilisant scanf plutôt que scanf_s
Code:
1 2 3 4 5 6
| le cerbÞre pose une question ... et
question contient : b
le personnage a le choix entre les reponses a, b, c : b
reponse contient : b
vous allez etre detruit
Appuyez sur une touche pour continuer... |
Est-il possible de faire correspondre ces deux variables question et reponse, de manière à avoir "la vie sauve" ?
EDI / compilateur : VSE2013 pour Windows 8.1 x64.
Merci :)