Fonction rand() : nombre positifs et négaifs ??? [Résolu]

Messages postés
4
Date d'inscription
vendredi 25 mars 2005
Dernière intervention
3 avril 2005
- 25 mars 2005 à 22:31 - Dernière réponse :
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
- 2 avril 2005 à 09:19
Bonjour tout le monde. Après de nombreuses recherches, je ne trouve toujours pas le moyen de générer une suite de nombre >0 et <0 à l'aide de la fonction rand. Est-ce que quelqu'un pourrait me renseigner sur l'utilisation de cette fonction , me donner l'adresse d'un tuto sur cette fonction où me dire comment est-ce que je dois m'y prendre ?
Merci d'avance.
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
Messages postés
231
Date d'inscription
mercredi 12 février 2003
Dernière intervention
7 juillet 2009
- 25 mars 2005 à 22:49
3
Merci
Si tu veux obtenir un rang d'un nombre compris entre 1000 et -1000, tu
n'a cas générer un nombre entre 0 et 2000, si celui est supérieur à
1000, il faut le soustraire de 1000.

Merci Hades53 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de Hades53
Meilleure réponse
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
- 27 mars 2005 à 10:59
3
Merci
peux tu faire réponse accèptée stp

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

Merci coucou747 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de coucou747
Meilleure réponse
Messages postés
409
Date d'inscription
mardi 1 mai 2001
Dernière intervention
15 août 2011
- 28 mars 2005 à 21:36
3
Merci
(rand() % 2000) - 1000

ne retourne pas toujours un nombre négatif ...
imagine que (rand() % 2000) renvoie 1345
1345 - 1000 = 345 (positif)

pour toutes les valeurs suppérieurs à 999, tu
auras des valeurs positives

au fait, dans les deux cas, tu n'a qu'une variable
mes macros peuvent ce traduire de cette facon:

#define rand_neg(x) ( (int) -(rand() % (int)x) )
int value = rand_neg(1000);

c'est la même chose que:
int value = (int) -(rand() % 1000);

une variable seulement et de plus, ma méthode
t'assure un nombre négatif ...

~(.:: NitRic ::.)~

Merci NitRic 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 87 internautes ce mois-ci

Commenter la réponse de NitRic
Messages postés
4
Date d'inscription
vendredi 25 mars 2005
Dernière intervention
3 avril 2005
- 25 mars 2005 à 22:56
0
Merci
x = rand() % 2000 + 1 de cette facon ? non cela me donne des nombres entre 0 et 2000 moi j'aimerais avoir vraiment tous les nombres positifs et négatifs sans restrictions... Sais-tu comment faire ?
Commenter la réponse de mrdaryx
Messages postés
409
Date d'inscription
mardi 1 mai 2001
Dernière intervention
15 août 2011
- 26 mars 2005 à 05:21
0
Merci
#include <time.h>
#include <stdio.h>

#define rand_neg(x) ( (int) -(rand() % (int)x) ) /* - */
#define rand_pos(x) ( (int) (rand() % (int)x) ) /* + */

int main()
{

int a, b, c;

srand(time(0));
for ( a = 0; a < 50; a++ )
{
b = rand_neg(1000);
c = rand_pos(1000);

printf("negatif: %d\npositif: %d\n", b, c);
}

return 0;
}

~(.:: NitRic ::.)~
Commenter la réponse de NitRic
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
- 26 mars 2005 à 17:18
0
Merci
salut

et ceci :

(rand() %2000)-1000




In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

Commenter la réponse de coucou747
Messages postés
4
Date d'inscription
vendredi 25 mars 2005
Dernière intervention
3 avril 2005
- 26 mars 2005 à 21:12
0
Merci
Thanks pour les réponses! Thks Nitric et Hades53. En fait je voulais stoker le résultat dans une seule variable donc la méthode de coucou747 est parfaite. Merci encore.
Ciao.
MrDaryX.
Commenter la réponse de mrdaryx
Messages postés
409
Date d'inscription
mardi 1 mai 2001
Dernière intervention
15 août 2011
- 28 mars 2005 à 21:42
0
Merci
Okay, je viens de relire et c'est bon: (rand() % 2000) -1000
Oui, comme j'ai dis, tu auras des valeurs positives mais aussi
négatives, c'est ce que tu voulais je crois mais, les deux méthodes
fonctionne, si tu veux quelque chose d'aléatoire(+/-) alors la méthode
de coucou747 convient à ton problème.

Désolé, j'ai été un peu trop rapide à conclure et n'ai pas pris le temps
de bien comprendre/étudier le problème.

~(.:: NitRic ::.)~
Commenter la réponse de NitRic
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
- 28 mars 2005 à 22:16
0
Merci
lol

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

Commenter la réponse de coucou747
Messages postés
409
Date d'inscription
mardi 1 mai 2001
Dernière intervention
15 août 2011
- 30 mars 2005 à 05:52
0
Merci
coucou747, pourquoi tu rigole? il n'y à rien de drôle

~(.:: NitRic ::.)~
Commenter la réponse de NitRic
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
- 30 mars 2005 à 12:34
0
Merci
c'est pe nerveux...



regarde la simplicitée de ma réponse et sa justesse comparé aux votres...

In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

Commenter la réponse de coucou747
Messages postés
409
Date d'inscription
mardi 1 mai 2001
Dernière intervention
15 août 2011
- 2 avril 2005 à 01:46
0
Merci
heu ... tu ne vois pas les `smiles` dans ton navigateur ???

~(.:: NitRic ::.)~
Commenter la réponse de NitRic
Messages postés
12336
Date d'inscription
mardi 10 février 2004
Dernière intervention
30 juillet 2012
- 2 avril 2005 à 09:19
0
Merci
sisi, mais je ne les utilises jamais...
mon nav c'est Mozilla, alors stp, il suporte !


In a dream, I saw me, drop dead... U was here, U cried... It was just a deam, if I die, U won't cry, maybe, U'll be happy

Commenter la réponse de coucou747

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.