Bonsoir chers ami(es)![]()
Je voulais savoir comment est-il possible d'utiliser la fonction rand() uniquement avec des nombres entre 1 et 100 ?![]()
merci
Bonsoir chers ami(es)![]()
Je voulais savoir comment est-il possible d'utiliser la fonction rand() uniquement avec des nombres entre 1 et 100 ?![]()
merci
tiens, un piti lien qui explique comment ca marche !
http://man.developpez.com/man3/rand.3.php
Bonjour,
A noter qu'il faut initialiser avec srand(int a), mais si ton a est une constante alors tu auras toujours la même suite logique...
Une astuce consiste à récupérer la valeur de l'heure systeme et à l'affecter à a.
en incluant "time.h"
Code : Sélectionner tout - Visualiser dans une fenêtre à part srand(time(0));
@+.
Pas obligatoire. Ca dépend de l'application.Envoyé par PadawanDuDelphi
Oui, tu peux vouloir produire une série aleatoire, et vouloir retrouver à chaque fois la meme serie aleatoire...
le program fonctionne bien avec le rand() mais quand je voudrai faire une comparaison pour imprimer les chiffres qui se ressemblent il se plante.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 # include <stdlib.h> # include <stdio.h> # include <conio.h> int rand (int){ int y; y=rand(); return y; } int main(){ int x=0,y=0; for (int i=0;i<100;i++) { rand (x); if (x==y) printf("%d", y); } getch(); }
Recursivité infinie ?Envoyé par bonomsoleil
Nop c'est juste qu'il a juste appelé sa fonction rand sauf que la sienne prend en paramètre un int.Envoyé par Gruik
Et oui c'est pas comme en C++ deux fonctions peuvent pas avoir le même nom...
Fais extrêmement attention avec cette fonction : la valeur maximale (RAND_MAX) peut être très petite et il se peut qu'elle ne soit définie que sur un short, et non un int, contrairement à son type de retour !
Sur Solaris 9, avec des UltraSparc IIIi, la valeur de RAND_MAX est d'environ 30 000 (la valeur minimale définie par la norme ANSI), ce qui correspond à un short... alors que la fonction est censée retourner un int ! C'est comme ça qu'un programme que j'avais fait sur IA32 plantait lamentablement sur Sparc à cause du nombre de collisions fréquentes.
Une vraie saloperie cette fonction si on ne fait pas gaffe !
Boaf, aucun rapport entre le type et RAND_MAX... Pourquoi tu parles de short ? EOF vaut souvent -1, c'est pas pour ça que le type retourné par fgetc() est short ou signed char.Envoyé par InOCamlWeTrust
Et puis les 30000, c'est bon pour un int dont la plage minimale garantie est -32767 à + 32767. int est le bon type, y'a pas à chercher autre chose. De toutes façons, char et short, c'est comme float, ça sert au stockage de masse, aux tableaux, mais les paramètres et les expressions constantes sont physiquement de type int, long, double ou pointeur. (OK, il y a des expression constantes de type float pour éviter les conversions couteuses).
Au fait, le type de l'expression constante 32000 est int, pas short...
Partager