Bonjour à tous,
J'ai comme projet de faire un programme en c qui effectue le célèbre jeux du PLUS OU MOINS. Jusque là tout va bien mais c'est dans la deuxième partis du TD. C'est l'ordinateur qui doit trouver le nombre que vous avez dans votre tête. Il faut juste l'aider en lui disant + ou -
Il y a une condition il faut utiliser la fonction recursive.
Je me suis pas mal renseigner la dessus. Je trouve d'ailleurs cette fonction génial mais assez dur pour un novice comme moi à mettre en place. Comme mon père me disait, C'est en programment que l'on devient programmeur !
Donc voici en gros les règles de l'exercice:
Choisissez un nombre entre 0 et 100.
L'ordinateur doit pouvoir trouver votre nombre, pour cela utiliser la touche "1" pour plus petit et "2" pour plus grand et "3" pour c'est gagné !
Utiliser la recurrence.
J'ai commencé donc à écrire un programme depuis 2 jours et je vous avouerais que je bloque au niveau des intervalles.
Prenons par exemple le nombre 22.
Le programme me demande au début si il est plus petit ou plus grand que 50.
Je répond plus petit.
Il me demande ensuite si il est plus petit ou plus grand que 25.
Je répond plus petit.
Il me demande ensuite si il est plus petit ou plus grand que 12.
Je lui répond plus grand.
LA il me demande si il est plus petit ou plus grand que 6. Je vous avouerais que je bloque. Mon code est surement faux mais je n'arrive pas à trouvé une solution. Si quelqu'un pouvait m'éclairer.
Pour info: Je développe sur Xcode 6.0.1
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43 #include <stdio.h> #include <stdlib.h> #include <time.h> const int MIN = 0; const int MAX = 100; void intervalle(int MIN, int MAX) { int INT_T; // intervalle à l'instant t int x; INT_T = ((MAX-MIN)/2); printf("Est il plus grand (1) ou plus petit (2) que : %d ? ou est ce %d ? (3) \n", INT_T, INT_T); scanf("%d", &x); if ( x == 1 ) /* nombre mystère > INT_T */ { INT_T = (((MAX-MIN)/2) + MIN); MIN = INT_T; intervalle(MIN, MAX); } if ( x == 2) /* nombre mystère < INT_T */ { MAX = INT_T; intervalle(MIN, MAX); } if ( x == 3) /* c'est le nombre mystère */ { printf("C'est gagné, le chiffre mystère est %d \n", INT_T); exit (0); } } int main () { intervalle(0,100); return 0; }
MERCI A TOUS![]()
Partager