choisir un nombre entre 1 et 1000 en C++

choisir un nombre entre 1 et 1000 en C++ - C++ - Programmation

Marsh Posté le 26-12-2002 à 10:41:15    

je cherche a faire un prg de tel sorte que le pc choisis au hasard un nombre entre 1 et 1000,
comment faire???
(il ne sera pas necessaire que l'on sache ce nbr choisi)

Reply

Marsh Posté le 26-12-2002 à 10:41:15   

Reply

Marsh Posté le 26-12-2002 à 10:48:02    

rand() % 1000;


Message édité par Harkonnen le 26-12-2002 à 10:50:51

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 26-12-2002 à 10:51:56    

oui, plus une multiplication et une prise de l'entier seulement. non?
 
edit: grillaid pour la correction :)
quoiqu'il ne précise pas si le nombre doit être entier ou autre  :ange:


Message édité par TBone le 26-12-2002 à 10:53:20

---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
Reply

Marsh Posté le 26-12-2002 à 10:54:29    

si ca doit etre un entier...

Reply

Marsh Posté le 26-12-2002 à 10:56:38    

"rand() % 1000;"
dans rand() on met une variable?
comme par ex: rand(int x) % 1000;
le nombre choisi au hasard par le pc sera mis ds x?

Reply

Marsh Posté le 26-12-2002 à 10:58:32    

TBone a écrit :

edit: grillaid pour la correction :)


:d
en fait, j'avais validé par erreur (saloperie de touche TAB !!)
 

TBone a écrit :


quoiqu'il ne précise pas si le nombre doit être entier ou autre  :ange:  


rand() retourne un int de toute façon. pour obtenir un flottant, ça risque d'être plus complexe (int, flottant, complexe... humour !! [:ddr555])


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 26-12-2002 à 11:00:35    

LeCoyote a écrit :

"rand() % 1000;"
dans rand() on met une variable?
comme par ex: rand(int x) % 1000;
le nombre choisi au hasard par le pc sera mis ds x?


non ,rand() ne prend pas d'argument et retourne un integer compris entre 0 et RAND_MAX (défini dans <stdlib.h> )
 
tu dois donc faire un modulo de la valeur retournée pour le faire cadrer avec la plage de valeurs que tu souhaites (entre 1 et 1000)


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 26-12-2002 à 11:11:48    

d'accord!
alors par ex, si je veux afficher la valeur pris:
 
#include <iostream>
using namespace std;
{
 rand() % 1000;;
 
 cout<<rand<<endl;
 
 return 0;
 
}
 
 
???

Reply

Marsh Posté le 26-12-2002 à 11:29:58    

he be.....
 

Code :
  1. #include <iostream>
  2. #include <stdlib.h>
  3. using namespace std;
  4. void main()
  5. {
  6. int a = rand() % 1000;;
  7. cout<<a<<endl;
  8. return 0;
  9. }

Reply

Marsh Posté le 26-12-2002 à 11:34:19    

LeCoyote a écrit :

d'accord!
alors par ex, si je veux afficher la valeur pris:
 
#include <iostream>
using namespace std;
{
 rand() % 1000;;
 
 cout<<rand<<endl;
 
 return 0;
 
}
 
 
???


pas du tout !
 

Code :
  1. #include <iostream>
  2. #include <stdlib.h>
  3. using namespace std;
  4. int main{int argc, char **argv)
  5. {
  6. int n = rand() % 1000;
  7. cout<<n<<endl;
  8. return 0;
  9. }


 
Ne me dis pas que tu ne sais pas ce qu'est une fonction et une valeur de retour ?
Autre chose : mon code est batard car il mélange du C et du C++. Moi, ce que je te conseille, c'est de ne pas commencer en C++, mais plutot en C, sinon tu vas t'embrouiller. Ainsi, la version 100 % C de mon code devient :

Code :
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. int main (int argc, char **argv)
  4. {
  5.      int n = rand() % 1000;
  6.      printf("%d", n);
  7.      return 0;
  8. }


 
edit : semi grilled


Message édité par Harkonnen le 26-12-2002 à 11:35:47

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 26-12-2002 à 11:34:19   

Reply

Marsh Posté le 26-12-2002 à 11:36:05    

merci chrisbk;
parcontre g un pb en compilant:
error C2562: 'main' : 'void' function returning a value
 
que faire?

Reply

Marsh Posté le 26-12-2002 à 11:38:11    

LeCoyote a écrit :

merci chrisbk;
parcontre g un pb en compilant:
error C2562: 'main' : 'void' function returning a value
 
que faire?


faire comme je te dis dans ma réponse précédente. la version de chrisbk retourne 0 alors que son proto est "void main()"
 
edit: c'est bien ce que je disais ! si tu ne sais pas résoudre l'erreur de ton compilo, c'est que tu ne connais pas du tout le principe des fonctions et des valeurs de retour ! et ça c'est grave, car c'est vraiment la base !!


Message édité par Harkonnen le 26-12-2002 à 11:40:30

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 26-12-2002 à 11:39:35    

franchement Harkonnen tu est un bosse!!!!
par contre je n'ai pas compris, le prg mélange du C et du C++???
c un truc de barge!!

Reply

Marsh Posté le 26-12-2002 à 11:40:29    

Harkonnen a écrit :


faire comme je te dis dans ma réponse précédente. la version de chrisbk retourne 0 alors que son proto est "void main()"


 
désolé, vieille habitude :O
j'avais pas fais gaffe qu'il retournerait 0. Par contre tout les deux on a un piti peu merdé, je sens qu'il va bientot y avoir un post "il me renvoie tjs le meme nombre meme si je le lance 50fois de suite" :ange:

Reply

Marsh Posté le 26-12-2002 à 11:42:10    

chrisbk a écrit :


 
désolé, vieille habitude :O
j'avais pas fais gaffe qu'il retournerait 0. Par contre tout les deux on a un piti peu merdé, je sens qu'il va bientot y avoir un post "il me renvoie tjs le meme nombre meme si je le lance 50fois de suite" :ange:


très juste, on a oublié srand() !!


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 26-12-2002 à 11:46:25    

bon, je m'y colle !
 
coyote > tu dois initialiser la racine de ton nombre aléatoire avant de le calculer, sinon tu auras toujours la même valeur.
 
pour ceci, utilise la fonction srand au début de ton programme :
 
srand(time(0));
 
indique que la base de ton nombre aléatoire se base sur les ticks du système, tu auras ainsi très peu de chances de tomber 2 fois de suite sur la même valeur


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 26-12-2002 à 11:48:08    

par contre le prg de harkonnen retourne tt le tps la meme valeur... c normal?

Reply

Marsh Posté le 26-12-2002 à 11:48:47    

LeCoyote a écrit :

par contre le prg de harkonnen retourne tt le tps la meme valeur... c normal?


 
:lol: :D
 
il a été prévoyant, il t'as repondu avant meme que tu postes ta question :D

Reply

Marsh Posté le 26-12-2002 à 11:48:53    

lol, excuse pr ma réponse, j'ai répondu en meme tps... :)

Reply

Marsh Posté le 26-12-2002 à 11:49:13    

mdr

Reply

Marsh Posté le 26-12-2002 à 11:52:58    

Harkonnen a écrit :

bon, je m'y colle !
 
coyote > tu dois initialiser la racine de ton nombre aléatoire avant de le calculer, sinon tu auras toujours la même valeur.
 
pour ceci, utilise la fonction srand au début de ton programme :
 
srand(time(0));
 
indique que la base de ton nombre aléatoire se base sur les ticks du système, tu auras ainsi très peu de chances de tomber 2 fois de suite sur la même valeur


 
 
 
c cho!!! je n'ai jamais travailler avec les tics du system;
"srand(time(0));" tu le met ds les {}? et au début?
parcequ'il me met une erreur :'(

Reply

Marsh Posté le 26-12-2002 à 11:54:07    

tu le met au debut du main.
edit: pis le best, c pas de dirre "il met une erreur", c de poster ladite erreur ;)


Message édité par chrisbk le 26-12-2002 à 11:54:29
Reply

Marsh Posté le 26-12-2002 à 11:54:37    

chrisbk > au boulot un peu :d
y'a pas de raison que ce soient tjs les mêmes qui bossent [:ddr555]
 
edit: grilled again


Message édité par Harkonnen le 26-12-2002 à 11:55:15

---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 26-12-2002 à 11:55:08    

Harkonnen a écrit :

chrisbk > au boulot un peu :d
y'a pas de raison que ce soient tjs les mêmes qui bossent [:ddr555]


 
rooh l'ot, hé, j'aide deja ceux qui ont des blemes sous emacs, alors hein ? :ange:

Reply

Marsh Posté le 26-12-2002 à 11:55:36    

chrisbk a écrit :


 
rooh l'ot, hé, j'aide deja ceux qui ont des blemes sous emacs, alors hein ? :ange:


lol

Reply

Marsh Posté le 26-12-2002 à 11:56:40    


 
tu t'en sors ?  
ah vi, faudra pe faire un #include <time.h>

Reply

Marsh Posté le 26-12-2002 à 11:57:01    

chrisbk a écrit :


 
rooh l'ot, hé, j'aide deja ceux qui ont des blemes sous emacs, alors hein ? :ange:


en leur demandant d'installer VC++ [:ddr555]


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 26-12-2002 à 11:58:02    

chrisbk a écrit :


 
tu t'en sors ?  
ah vi, faudra pe faire un #include <time.h>  


j'y arrive tit'a'p tis...

Reply

Marsh Posté le 26-12-2002 à 11:58:20    

Harkonnen a écrit :


en leur demandant d'installer VC++ [:ddr555]


 
il faut savoir prendre des mesures radicales et novatrices [:ddr555]

Reply

Marsh Posté le 26-12-2002 à 12:00:23    

c bon, j'y suis arrivé!
c galère cette histoir de tics!
bon j'arrète de vs ennuyer et je vais me mettre à faire mon pgr,
je vs remerci encor et j'aurai peut-etre encor besoin d'aide ds les jour à venir!
aller @+
LeCoyote

Reply

Marsh Posté le 26-12-2002 à 12:01:37    

[:bou_le_loup]

Reply

Marsh Posté le 26-12-2002 à 12:02:50    

oups! avant de partir,
y a un truc qui me semble inutile ds le prg:
"       int main{int argc, char **argv)     "
ce qui y a à l'intèrieur du main de sert à rien?

Reply

Marsh Posté le 26-12-2002 à 12:04:20    

LeCoyote a écrit :

oups! avant de partir,
y a un truc qui me semble inutile ds le prg:
"       int main{int argc, char **argv)     "
ce qui y a à l'intèrieur du main de sert à rien?


SI CA SERT !!!
 
c'est nécessaire pour récupérer les arguments de la ligne de commande ! et c'est la signature exacte de main ! même si tu t'en sers pas, tu le mets quand même ! :fou:


---------------
J'ai un string dans l'array (Paris Hilton)
Reply

Marsh Posté le 26-12-2002 à 12:05:24    

tu parles des parametres de "main"  ?
C'est les parametres par defaut. Normalement on s'en sert pout recuperer ce qu'il y a sur la ligne de commande. Par exemple, si ton programme s'appelle toto et que tu tape dans le dos/console :
 
toto machin truc
 
alors :
 
argc = 3
argv[0] = toto
argv[1] = machin
argv[2] = truc
 
Laisse les, ca fait jamais de mal
 

Reply

Marsh Posté le 26-12-2002 à 12:06:22    

Harkonnen a écrit :


SI CA SERT !!!
 
c'est nécessaire pour récupérer les arguments de la ligne de commande ! et c'est la signature exacte de main ! même si tu t'en sers pas, tu le mets quand même ! :fou:


ok merci.

Reply

Marsh Posté le 26-12-2002 à 12:07:36    

Harkonnen a écrit :


SI CA SERT !!!
 
c'est nécessaire pour récupérer les arguments de la ligne de commande ! et c'est la signature exacte de main ! même si tu t'en sers pas, tu le mets quand même ! :fou:


 
tagada, tu n'oublierais pas le "char **env" ? :D
Perso je suis plus laxiste la dessus, vu que je le met quasiment jamais :ange:

Reply

Marsh Posté le 26-12-2002 à 12:08:31    

et le  [/g]#include <stdlib.h>[/g] sert à quoi?
(parce que le prg marche trés bien sans... :) )

Reply

Marsh Posté le 26-12-2002 à 12:09:20    

normalement il definit le rand(). Laisse le, ca fait pas de mal non plus :D

Reply

Marsh Posté le 26-12-2002 à 12:10:34    

merci à vous deux!

Reply

Marsh Posté le 26-12-2002 à 12:39:24    

:fou:  :fou:  :fou:  :fou:  :fou:  :fou:  :fou:  :fou:  :fou:  :fou:  :fou:  :fou:  :fou:  :fou:  
 
 
et ma signature, c'est du bitume?


---------------
du bon usage de rand [C] / [C++]
Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed