Menu

Jeux plus et moins

-
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:


#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;
}
Afficher la suite 

Votre réponse

3 réponses

Messages postés
34
Date d'inscription
vendredi 3 février 2012
Dernière intervention
12 février 2019
1
0
Merci
Bonsoir,
Dans la fonction
menu()
, tu retournes
menu
alors que ce devrait être
choix
.
merci pour réponse
mais votre réponse pas claire
Commenter la réponse de Juuli
Messages postés
457
Date d'inscription
mardi 12 mars 2013
Dernière intervention
13 février 2019
32
0
Merci
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 ?

Commenter la réponse de Traxmix
Messages postés
4923
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
21 février 2019
904
0
Merci
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 faire
x = rand() % 101;
...
- tu as mal orthographié la commande
systeme("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
Commenter la réponse de [Dal]