Générer nombre

jobry -  
Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,
je voudrais générer un nombre de 8 chiffres mais le problème c'est que je n'arrive a en générer au maximum que 5 ; je met mon code :

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main ( int argc, char** argv )
{
srand(time(NULL));
long nombreMystere = 0;
long MAX = 99999999, MIN = 10000000;
int compteur = 0;

do
{
// Génération du nombre aléatoire
nombreMystere = (rand() %(MAX- MIN + 1)) + MIN;

printf("La variable vaut %d\n", nombreMystere);
compteur++;
}while (compteur < 10);
system("PAUSE");

}
A voir également:

3 réponses

Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
 
rand() %(MAX- MIN + 1)

ce ne serait pas plutot

rand()/RAND_MAX * (MAX-MIN+1) ?
0
Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
 
pardon, il manque un cast en double sinon ça marche pas :
((double) rand()/RAND_MAX * (MAX-MIN+1) ) +MIN
0
Pacorabanix Messages postés 4122 Date d'inscription   Statut Membre Dernière intervention   663
 
en fait je viens de réaliser qqchose :

de toute façon les nombres sont générés entre 0 et RAND_MAX, et ma technique (et toute autre basée juste sur un appel à rand() d'ailleurs) ne permet que de faire "croire" qu'on a des nombres entre 10000000 et 99999999, mais en fait parmis ceux là il n'y aura que RAND_MAX nombres différents qui seront toujours les mêmes, il y aura plein de nombres qui ne seront jamais utilisés.

si cela a une importance pour ton programme, il faut mieux utiliser une bibliothèque de générateurs de nombres aléatoires plus puissante. je n'en ai pas sous la main, désolé...
0