Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1484 connectés 

  FORUM HardWare.fr
  Programmation
  C

  programme en c

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

programme en c

n°2208262
arahariv
Posté le 26-10-2013 à 18:15:37  profilanswer
 

bonjour,  
j'ai un problème pour un exercice en cours, voici l'énoncé:  
 
 
 Exercice 8 : Nombre caché.
1. Écrivez un programme qui demande à l’utilisateur de trouver un nombre entier secret
compris entre 0 et 1000. Pour cela il est guidé par le programme qui lui indique à chaque
essai si la valeur saisie est supérieure ou inférieure au nombre secret. Lorsque le jeu se
termine, le programme affiche le nombre d’essais sous la forme : gagné en ... essais.
Vous pouvez soit fixer d’avance la valeur du nombre secret dans le code, soit tirer un nombre
au hasard grâce à la fonction rand() (pas au programme du cours).
2. Modifiez le programme pour autoriser au plus 10 essais à l’utilisateur, et afficher un message
(par exemple perdu !) si l’utilisateur ne parvient pas à deviner le nombre au bout de 10
essais. Parvenez-vous toujours à gagner?
3. On veut maintenant inverser les rôles. Écrivez un programme qui devine un nombre secret
entre 1 et 1000 choisi par l’utilisateur. Le programme doit proposer des nombres, auxquels
l’utilisateur doit répondre par “g”, “p” ou “e” pour indiquer que le nombre proposé est
respectivement plus grand, plus petit, ou égal au nombre deviné. Le programme ne doit
jamais proposer deux fois le même nombre, et doit gagner à tous les coups (si l’utilisateur
ne triche pas).

 
Mon problème se trouve sur cette question, quand j'utilise g, p, e, ça compile mais ça fait n'importe quoi. Pourtant si j'utilise une variable entier ça marche, c'est à dire en utilisant plutôt 1,2 et 3 à la place. Voilà mon code: (je suis sur codeblocks)
 
 

Code :
  1. #include<stdio.h>
  2. int main(){
  3.     int nbrecacher,nbre,i,j;
  4.     char decision;
  5.     printf("Entrez le nombre cache:\n" );
  6.     scanf("%d",&nbrecacher);
  7.     nbre=1000;
  8.     i=1;
  9.     j=2;
  10.     do{
  11.         printf("%d est p:plus petit,g:plus grand, e:egal, par rapport au nombre cache\n",nbre);
  12.         scanf("%d",&decision);
  13.         if(decision== 'p'){
  14.             nbre=nbre+(1000/j);
  15.         }
  16.         if(decision== 'g'){
  17.             nbre=nbre-(1000/j);
  18.         }
  19.         if(decision== 'e'){
  20.             printf("Trouver en %d essais\n",i);
  21.         }
  22.         i++;
  23.         j=j*2;
  24.     }while(i<=10);
  25. }


Message édité par gilou le 27-10-2013 à 14:40:16
mood
Publicité
Posté le 26-10-2013 à 18:15:37  profilanswer
 

n°2208269
dreameddea​th
Posté le 26-10-2013 à 19:11:15  profilanswer
 

pour lire un caractère, il faut utiliser %c et non %d...

n°2208328
gilou
Modérateur
Modzilla
Posté le 27-10-2013 à 14:58:43  profilanswer
 

Code :
  1. if(decision== 'p'){
  2.             nbre=nbre+(1000/j);
  3.         }
  4.         if(decision== 'g'){
  5.             nbre=nbre-(1000/j);
  6.         }
  7.         if(decision== 'e'){
  8.             printf("Trouver en %d essais\n",i);
  9.         }


 
Pourquoi ne pas faire
 

Code :
  1. switch (decision) {
  2.         case 'p': nbre += 1000/j;
  3.                   break;
  4.         case 'g': nbre -= 1000/j;
  5.                   break;
  6.         case 'e': printf("Trouver en %d essais\n", i);
  7.                   break;
  8.         default: /* erreur a traiter */
  9.                   break;
  10. }


 
A+,


Message édité par gilou le 27-10-2013 à 14:59:27

---------------
There's more than what can be linked! --    Iyashikei Anime Forever!    --    In umbra igitur pugnabimus. --

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C

  programme en c

 

Sujets relatifs
besoin d'aide pour completer un programmeQuel(s) langage(s) pour un programme simple.
[Divers][Réseaux]programme Hello, world ! sur internet.[Java] Aide pour un programme
Programme qui affiche la musique en cours de lectureBesoin d'aide pour créer un programme
Inclure un compilateur dans un programmeSimple programme, simple bug
Redirection de la console d'un programme appelé à l'appelantAide Programme Distance
Plus de sujets relatifs à : programme en c


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR