Boncoir,
Je suis un débutant en langage C++, et j'ai quelques lacunes au niveau de la programmation.
Je veux écrire un algorithme qui peut deviner un nombre entier entre 0 et 1000, en adoptant la méthode de dichotomie.
Voilà l’algorithme :
Mais lors de l’exécution, il y en a des erreurs.
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 #include<stdio.h> #include<conio.h> int main(void) { int a=0, b=1000, n=500, i=1; char c; printf(" Reponds par p si le nombre a deviner est encore plus petit, par g s'il est plus grand et par t si l'algorithme l'a trouve \n" ) ; printf("Le nombre a deviner vaut 500"); scanf("%c",&c) ; while(c!='t') { switch(c){ case'p': b=n; break; case'g': a=n; break; default: printf(" Reponds par p si le nombre a deviner est encore plus petit, par g s'il est plus grand et par t si l'algorithme l'a trouve \n" ) ; break; } n=(a+b)/2; printf("Le nombre a deviner vaut %d",n); i++; scanf("%c",&c) ; } if (i==1) printf(" j'ai pu trouve ce nombre qui est egale a %d, des le premier essai ",n) ; else printf(" ,j'ai pu le trouver apres %d essais ",i) ; getch() ; }
- à chaque essai, le i s’incrémente deux fois.
- Le message qui doit être affiché quand l’utilisateur tape un caractère différant de ‘p’ et de ‘g’, apparaît à chaque fois.
J’ai besoin de votre aide svp.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 Reponds par p si le nombre a deviner est encore plus petit, par g s'il est plus grand et par t si l'algorithme l'a trouve Le nombre a deviner vaut 500p Le nombre a deviner vaut 250 Reponds par p si le nombre a deviner est encore plu s petit, par g s'il est plus grand et par t si l'algorithme l'a trouve Le nombre a deviner vaut 250g Le nombre a deviner vaut 375 Reponds par p si le nombre a deviner est encore plu s petit, par g s'il est plus grand et par t si l'algorithme l'a trouve Le nombre a deviner vaut 375t ,j'ai pu le trouver apres 5 essais
Partager