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

mrdaryx 4 Messages postés vendredi 25 mars 2005Date d'inscription 3 avril 2005 Dernière intervention - 25 mars 2005 à 22:31 - Dernière réponse : coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention
- 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 

13 réponses

Répondre au sujet
Hades53 231 Messages postés mercredi 12 février 2003Date d'inscription 7 juillet 2009 Dernière intervention - 25 mars 2005 à 22:49
+3
Utile
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.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Hades53
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 27 mars 2005 à 10:59
+3
Utile
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

Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de coucou747
NitRic 409 Messages postés mardi 1 mai 2001Date d'inscription 15 août 2011 Dernière intervention - 28 mars 2005 à 21:36
+3
Utile
(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 ::.)~
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de NitRic
mrdaryx 4 Messages postés vendredi 25 mars 2005Date d'inscription 3 avril 2005 Dernière intervention - 25 mars 2005 à 22:56
0
Utile
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
NitRic 409 Messages postés mardi 1 mai 2001Date d'inscription 15 août 2011 Dernière intervention - 26 mars 2005 à 05:21
0
Utile
#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
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 26 mars 2005 à 17:18
0
Utile
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
mrdaryx 4 Messages postés vendredi 25 mars 2005Date d'inscription 3 avril 2005 Dernière intervention - 26 mars 2005 à 21:12
0
Utile
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
NitRic 409 Messages postés mardi 1 mai 2001Date d'inscription 15 août 2011 Dernière intervention - 28 mars 2005 à 21:42
0
Utile
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
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 28 mars 2005 à 22:16
0
Utile
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
NitRic 409 Messages postés mardi 1 mai 2001Date d'inscription 15 août 2011 Dernière intervention - 30 mars 2005 à 05:52
0
Utile
coucou747, pourquoi tu rigole? il n'y à rien de drôle

~(.:: NitRic ::.)~
Commenter la réponse de NitRic
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 30 mars 2005 à 12:34
0
Utile
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
NitRic 409 Messages postés mardi 1 mai 2001Date d'inscription 15 août 2011 Dernière intervention - 2 avril 2005 à 01:46
0
Utile
heu ... tu ne vois pas les `smiles` dans ton navigateur ???

~(.:: NitRic ::.)~
Commenter la réponse de NitRic
coucou747 12336 Messages postés mardi 10 février 2004Date d'inscription 30 juillet 2012 Dernière intervention - 2 avril 2005 à 09:19
0
Utile
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.