Srand, sur dev c++ [Fermé]

Signaler
-
 Clownz -
Salut tout le monde.
Je développe sur dev c++ et j'ai besoin de choisir aléatoirement 10 nombres compris entre 65 et 122 (condition que le prof à donné).
J'utilise la fonction srand et tout, elle marche mais mes nombre sont choisi entre 0 et 187. Je voudrais donc savoir comment faire.
On m'a aussi dit qu'il fallait borné la fonction rand mais je ne sais pas comment faire.
Ma fonction est:

int main()
{
int a;

int cpt=0;

srand (time(NULL));

for(cpt=0; cpt<11; cpt++)
{
a=rand() %122+65;
printf("%d\n",a);
}

system("PAUSE");
return 0;

}

6 réponses

Déjà merci pour ton aide et ensuite je voudrais savoir, pourquoi 58? C'est parce que 58 + 65 = 123 ?
A+
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 70446 internautes nous ont dit merci ce mois-ci

Messages postés
488
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
156
(rand()%58)+65
ne peut pas valoir moins de 65
ne peut pas dépasser 122
¤
Messages postés
488
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
156
salut!
exactement!
soit une borne inférieure de 65 et une marge de hasard de 58
en fait, quand tu fais rand()%58
tu obtiens une valeur qui peut être 0 mais n'atteindra jamais 58.
%58 signifie modulo 58
on peut dire que c'est le reste d'une division par 58,
et dans les nombres entiers, le reste maximum d'une division par 58
c'est 57 !
cordialement
¤
Y aurait pas un petit problème parce qu'un int ça reste pas seulement dans N mais dans Z?
Messages postés
488
Date d'inscription
vendredi 16 avril 2004
Statut
Membre
Dernière intervention
15 mars 2009
156
1 / int n'est pas float ni double puisque 31 de ses bits sont consacrés
à la valeur en base 2, et 1 bit est consacré au signe.
2 / ici on est borné entre 65 et 123

==> les variables de type "int" comprises entre 65 et 123 appatiennent à l'ensemble des entiers positifs

¤
J'avais donc bon!!! En tout cas merci, ça marche.
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(int argc, char *argv[])
{

int a;

int cpt=0;

srand (time(NULL));

for(cpt=0; cpt<11; cpt++)
{
// a=rand() %122+65;
a=(rand() %(122 - 65 + 1))+65;
printf("%d\n",a);
}

system("PAUSE");
return 0;

}