Bonjour à tous !
Je me présente vite fait, Pierre, 20 ans, étudiant en première année Math-info
a l'issus de mes TP infos, je me réserve le plaisir de "paufiner" mes codes en soignant l'affichage à l'écran, les printf et autres compléments (précisions/praticité etc..)
Ma question va surement vous paraître très bête, mais à l'issus des programmes, j'aime bien demander à l'utilisateur s'il souhaite recommencer, pour cela nous avons appris 2 méthodes :
- avec oui(1) et non(2)
- avec oui(o) et non(n)
Seulement, ayant le soucis du détail, cela fait 2 semaines que je me casse la tête a essayer de le faire avec des chaines de caractères comparées (oui) et (non) et je n'y arrive pas ! mon test d'entrée en boucle foire complètement et je me suis résolu a "abandonné " ( ---> demandé de l'aide :p )
ce que je veux, c'est qu'à la fin de mon programme, le printf
analyse la réponse de l'utilisateur, l'enregistre dans un tableau de char (scanf %s) , compare les 2 chaines, si l"utilisateur a entrée "oui" alors le programme recommence, s'il a rentré "non", on sort de la boucle, c'est pourtant très simple a expliquer, mais si dur a programmer.. pourquoi ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part printf("Voulez-vous recommencer ? [oui] [non]\n");
voici mon code, je sais que le test d'entrée en boucle ne marche pas, cependant si je me résous a changer le test d'entrée en boucle "foireux" par un vulgaire "oui(o) non(n)" je vous assure que celà marche tres bien
pouvez-vous m'aider a programmer ce test d'entrée en boucle demandé en fin de programme ? ma méthode n'est surement pas la bonne, les votre sont plus que la bienvenue
voilà, merci de m'avoir lu si vous pouviez m'aider cela serait très aimable car je le veut ce test d'entrée/sortie de boucle en oui/non en fin de programme
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
44
45
46
47
48
49
50 #include <stdio.h> #include <stdlib.h> #include <time.h> #include <string.h> int main (void) { int x, max=1000001, min=0, compt=0, a, flag, reco; char oui[]= "oui", /*chaine de caractère fixe (PS : voir commentaire fin de programme) */ non[4]=0; /*le tableau dans lequel serait stockée la réponse de l'utilisateur */ compt=1; srand(time(0)); flag=0; do { printf("Bonjour, entrez le nombre que je dois deviner de 0 à 1000000 :\n"); scanf("%d", &a); x=rand()%max + min; while(x!=a) { printf("|[Machine] : Je pense que le nombre mystère est : %d|\n", x); printf("|---------------------+-------------------------------------------+\n"); printf("|[Administrateur] : Mauvaise réponse, essaye encore... |\n"); printf("|---------------------+-------------------------------------------+\n"); flag++; printf("|[Machine] : L> Echec numéro : %d |\n", flag); printf("|---------------------+-------------------------------------------+\n"); if(x>a) { max=x; } else { min=x; compt++; x=rand()%(max-min) + min; } } printf("Après %d tours, j'ai trouvé le nombre mystère : %d \n", compt, x); printf("Voulez vous recommencer ? [non] / [oui]\n"); printf("%s", non); } while(reco=1); /* j'ai pensé a faire une fonction qui comparerai les 2 chaines avec strcomp et qui renverrait 1 si les chaines été identiques ("oui" serait fixe et non modifiable et non serait la réponse de l'utilisateur et 0 si elles étaient différentes, cette "valeur" serait affecté a la variable de type int "reco" .. la encore je n'ai pas réussi a faire cette fonction*/ return 0; }
Partager