choisir un nombre entre 1 et 1000 en C++ - C++ - Programmation
Marsh Posté le 26-12-2002 à 10:48:02
rand() % 1000;
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   
 
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?
Marsh Posté le 26-12-2002 à 10:58:32
| TBone a écrit : edit: grillaid pour la correction  | 
  
 
en fait, j'avais validé par erreur (saloperie de touche TAB !!) 
 
| TBone a écrit :   | 
 
rand() retourne un int de toute façon. pour obtenir un flottant, ça risque d'être plus complexe (int, flottant, complexe... humour !! ![[:ddr555] [:ddr555]](https://forum-images.hardware.fr/images/perso/ddr555.gif) )
)
Marsh Posté le 26-12-2002 à 11:00:35
| LeCoyote a écrit : "rand() % 1000;"  | 
 
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)
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; 
 
} 
 
 
???
Marsh Posté le 26-12-2002 à 11:29:58
he be..... 
 
| Code : 
 | 
Marsh Posté le 26-12-2002 à 11:34:19
| LeCoyote a écrit : d'accord!  | 
 
pas du tout ! 
 
| Code : 
 | 
 
 
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 : 
 | 
 
 
edit : semi grilled
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?
Marsh Posté le 26-12-2002 à 11:38:11
| LeCoyote a écrit : merci chrisbk;  | 
 
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 !!
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!!
Marsh Posté le 26-12-2002 à 11:40:29
| Harkonnen a écrit :   | 
 
 
désolé, vieille habitude  
 
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" 
Marsh Posté le 26-12-2002 à 11:42:10
| chrisbk a écrit :   | 
 
très juste, on a oublié srand() !!
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
Marsh Posté le 26-12-2002 à 11:48:08
par contre le prg de harkonnen retourne tt le tps la meme valeur... c normal?
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?  | 
 
  
  
 
 
il a été prévoyant, il t'as repondu avant meme que tu postes ta question 
Marsh Posté le 26-12-2002 à 11:52:58
| Harkonnen a écrit : bon, je m'y colle !  | 
 
 
 
 
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 :'(
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 
Marsh Posté le 26-12-2002 à 11:54:37
chrisbk > au boulot un peu  
 
y'a pas de raison que ce soient tjs les mêmes qui bossent ![[:ddr555] [:ddr555]](https://forum-images.hardware.fr/images/perso/ddr555.gif) 
 
 
edit: grilled again
Marsh Posté le 26-12-2002 à 11:55:08
| Harkonnen a écrit : chrisbk > au boulot un peu  | 
 
 
rooh l'ot, hé, j'aide deja ceux qui ont des blemes sous emacs, alors hein ? 
Marsh Posté le 26-12-2002 à 11:55:36
ReplyMarsh Posté le 26-12-2002 à 11:56:40
ReplyMarsh Posté le 26-12-2002 à 11:57:01
| chrisbk a écrit :   | 
 
en leur demandant d'installer VC++ ![[:ddr555] [:ddr555]](https://forum-images.hardware.fr/images/perso/ddr555.gif)
Marsh Posté le 26-12-2002 à 11:58:02
| chrisbk a écrit :   | 
 
j'y arrive tit'a'p tis...
Marsh Posté le 26-12-2002 à 11:58:20
| Harkonnen a écrit :   | 
 
 
il faut savoir prendre des mesures radicales et novatrices ![[:ddr555] [:ddr555]](https://forum-images.hardware.fr/images/perso/ddr555.gif)
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
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?
Marsh Posté le 26-12-2002 à 12:04:20
| LeCoyote a écrit : oups! avant de partir,  | 
 
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 ! 
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 
 
Marsh Posté le 26-12-2002 à 12:06:22
| Harkonnen a écrit :   | 
 
ok merci. 
Marsh Posté le 26-12-2002 à 12:07:36
| Harkonnen a écrit :   | 
 
 
tagada, tu n'oublierais pas le "char **env" ?  
 
Perso je suis plus laxiste la dessus, vu que je le met quasiment jamais 
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...  )
 )
Marsh Posté le 26-12-2002 à 12:09:20
normalement il definit le rand(). Laisse le, ca fait pas de mal non plus 
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)