Jeux plus et moins

mrci -  
[Dal] Messages postés 6205 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:


#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;
}
A voir également:

3 réponses

Juuli Messages postés 34 Date d'inscription   Statut Membre Dernière intervention   5
 
Bonsoir,
Dans la fonction
menu()
, tu retournes
menu
alors que ce devrait être
choix
.
0
mrci
 
merci pour réponse
mais votre réponse pas claire
0
Traxmix Messages postés 463 Date d'inscription   Statut Membre Dernière intervention   173
 
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 ?

0
[Dal] Messages postés 6205 Date d'inscription   Statut Contributeur Dernière intervention   1 105
 
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
0