Jeux plus et moins
mrci
-
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
[Dal] Messages postés 6122 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
je traiter programme de jeux plus et mois
en donne ordinateur choisi numéro soit cas 1 (0 a 100) ,cas 2(0 a 1000),cas 3 (0 a 10000)
mais pas exécutée quelle ou le problème s"il veut plait
le progarmme:
je traiter programme de jeux plus et mois
en donne ordinateur choisi numéro soit cas 1 (0 a 100) ,cas 2(0 a 1000),cas 3 (0 a 10000)
mais pas exécutée quelle ou le problème s"il veut plait
le progarmme:
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<time.h>
int menu(){
int choix=0;
while (choix<1 || choix>3){
printf ("1: le numero choisi per ordinateur compri entre 0 et 100\n");
printf ("2: le numero choisi per ordinateur compri entre 0 et 1000\n");
printf ("3: le numero choisi per ordinateur compri entre 0 et 10000\n");
printf ("votre choix :\n");
scanf ("%d",&choix);
}
return menu ;
}
int main (){
int x,n;
switch (menu()){
case 1 : printf ("choisi numero compris entre 0 et 100\n");
srand(time(NULL));
x=rand()%100;
systeme ("cls");
break ;
case 2 : printf ("choisi numero compris entre 0 et 1000\n");
srand(time(NULL));
x=rand()%1000;
systeme ("cls");
break ;
case 3 : printf ("choisi numero compris entre 0 et 10000\n");
srand(time(NULL));
x=rand()%10000;
systeme ("cls");
break ;
}
do {
printf ("entrer nombre chercher:\n");
scanf ("%d",&n);
if(n>x) printf ("nombre d'ordinateur est moins :\n");
else if (n<x) printf (" nombre d'ordinateur est plus :\n");
else printf ("barvo c'est le nombre est vrai :\n");
}
while (n!=x);
return 0;
}
3 réponses
-
Bonsoir,
Dans la fonctionmenu()
, tu retournesmenu
alors que ce devrait êtrechoix
. -
Comme dit: dans ta fonction "menu()" tu retourne menu ("return menu ;") alors que tu devrais retourner "choix" ("return choix;"). En gros la tu retourne menu sur menu. Ca lui donne aucune valeur (ou 0 mais j'ai un doute).
Après j'ai un second doute sur ta boucle de menu', les conditions sont prisent en compte ?
-
Salut mrci,
Comme déjà dit par les deux personnes ayant répondu ton code ne retourne pas la valeur de "choix" tapée par l'utilisateur, mais autre chose (il retourne l'adresse de la fonction menu, ce qui n'est pas du tout ce que tu cherches à tester avec ton switch/case auquel tu fournit directement le résultat de la fonction).
Il y a aussi les deux autres problèmes suivants dans ton code :
-x=rand()%100;
ne va te permettre d'obtenir que des nombres de 0 à 99, si tu veux des nombres de 0 à 100 comme l'indique ton programme, tu dois fairex = rand() % 101;
...
- tu as mal orthographié la commandesysteme("cls");, c'est l'orthographe anglaise qui doit être utilisée :system("cls");(sans "e" à la fin)
Note que 2 de ces problèmes t'étaient signalés par ton compilateur si tu compiles avec les warnings :
$ gcc -Wall 35859388.c 35859388.c: In function ‘menu’: 35859388.c:14:9: warning: return makes integer from pointer without a cast [-Wint-conversion] return menu ; ^~~~ 35859388.c: In function ‘main’: 35859388.c:22:6: warning: implicit declaration of function ‘systeme’ [-Wimplicit-function-declaration] systeme ("cls"); ^~~~~~~ /tmp/cctRXJZs.o : Dans la fonction « main » : 35859388.c:(.text+0x133) : référence indéfinie vers « systeme » 35859388.c:(.text+0x1a4) : référence indéfinie vers « systeme » 35859388.c:(.text+0x212) : référence indéfinie vers « systeme » collect2: error: ld returned 1 exit status $
Enfin, ce n'est pas réellement un bogue, mais tu n'as pas besoin de l'entête#include <math.h>
dans ton code pour ce que tu fais, et tu pourrais le supprimer.
Dal