Initialisation d'une variable
eugenieraza
Messages postés
4
Statut
Membre
-
eugenieraza -
eugenieraza -
Bonjour,
le nombreMystere. Mon problème est que mon compteur ne se met jamais à 0 alors que je l'ai initialisé à 0
voici mon code :
Merci de votre aide.
eugenieraza
le nombreMystere. Mon problème est que mon compteur ne se met jamais à 0 alors que je l'ai initialisé à 0
voici mon code :
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main( int argc, char *argv[] )
{
int nombreMystere = 0, nombreEntre = 0 ;
const int MAX = 100, MIN = 1 ;
srand(time(NULL) );
nombreMystere = rand() % (MAX-MIN+1) + MIN ;
int coups=0;
printf("coups = %d, coups\n");
do
{
printf("Quel est le nombre?\n");
scanf("%d", &nombreEntre);
if(nombreEntre>nombreMystere)
printf("c'est moins\n");
else if (nombreEntre<nombreMystere)
printf("c'est plus\n");
coups++;
}
while(nombreEntre != nombreMystere);
if (nombreEntre = nombreMystere);
printf("Bravo, vous avez trouvé le nombre en , %d,coups\n");
return 0;
}
Merci de votre aide.
eugenieraza
1 réponse
-
'lut, normal, tu as oublié de donner le compteur à printf!
printf("Bravo, vous avez trouvé le nombre en %d coups\n", coups);
De plus, ton if est erroné (attribution au lieu de comparaison) mais de toute façon inutile: 1. il évalue toujours àtrue
vu que le nombre mystère ne peut pas être 0 (une attribution renvoie son résultat, qui n'évalue àfalse
que si c'est 0), et 2. si tu es sorti du while c'est que le nombre rentré était bon.
from human import idiocy
del idiocy-
Merci @ gravgun. En fait j'y suis depuis des jours, il y a des choses que je vois bien qui ne devrais pas être, comme l'attribution que vous avez signalé mais quand je mettais le bon signe le programme ne compilait plus du tout!
j'aurai une autre question . le temps de retrouver le code. c'est une décrémentation qui se fait de 2 en 2 au lieu de 1 en 1!
Je refais le corrigé et je vous tiens au courant. Eugenieraza -
Je n'ai pas réussi du 1er coup : j'ai bien suivi vos remarque mais quelque chose coinçait toujours. Alors je suis partie d'un sujet "Résolu "et en le parcourant et le testant j'ai vu qu'il n'affichait pas le compteur alors (par paresse) je suis partie de là et je l'ai résolu (pour moi)
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main( int argc, char** argv [])
{
int nombremystere = 0, nombreentre = 0, compteurdecoups = 0;
printf("compteur = %d\n",compteurdecoups);
const int MAX = 100, MIN = 1;
srand(time(NULL));
nombremystere = (rand () % (MAX - MIN + 1)) + MIN;
do
{
printf("Quel est le nombre ? ");
scanf("%d", &nombreentre);
compteurdecoups++;
printf("compteur = %d\n",compteurdecoups);
if (nombremystere > nombreentre)
printf("C'est plus!\n\n");
else if ( nombremystere < nombreentre)
printf("C'est moins!\n\n");
else
printf("Bravo! Tu as trouve le nombre mystere en %d coups.\n\n",compteurdecoups);
}while (nombreentre != nombremystere);
}
merci encore! -
Bonjour,
int main( int argc, char** argv [])
C'estchar **argv
ouchar *argv[]
. Mais pas un mix des deux.
Et n'oublie pas lereturn 0;
final.
Merci d'utiliser la balise <code c> lorsque vous poster votre code.
Exemple : <code c>ici votre code</code>
Et n'hésitez pas à poster les erreurs signalés par le compilateur. Elles sont précieuses.
Cdlt,- Merci @fiddy!
je n'ai jamais compris pourquoi il y a les 2 étoiles. j'ai vu ça dans une correction . maintenant je vois mieux quand il y a [] une seule étoile et sans ça **, si je comprends bien.
Pour les conseils de post aussi , ce n'est pas évident pour les débutants : je suis déjà abrutie d'être penchée sur le problème pendant des jours alors on ne pense plus à certains détails.
cordialement
-