Fonction aléatoire en C

Fermé
guitoontruant Messages postés 315 Date d'inscription dimanche 7 janvier 2007 Statut Membre Dernière intervention 26 août 2011 - 10 déc. 2007 à 16:32
guitoontruant Messages postés 315 Date d'inscription dimanche 7 janvier 2007 Statut Membre Dernière intervention 26 août 2011 - 10 déc. 2007 à 18:20
Bonjour,

Je voudrais créer une fonction en C qui me renvoit un nombre aléatoire compris entre -1 et 1 mais j'avoue ne pas avoir d'idée pour démarrer mon programme.

Pouvez-vous m'aider?

Mer'ci d'avance

5 réponses

mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
10 déc. 2007 à 16:45
comme ça
#include <stdio.h>

int aleat()
{
    int ch1;
    srand (time (NULL));

    ch1=rand()%3;
        if(ch1==2)
            ch1=-1;
return ch1;
}

int main()
{

    printf("chiffre aleatoire en tre -1 et 1 : %d\n",aleat());
return 0;
}
0
guitoontruant Messages postés 315 Date d'inscription dimanche 7 janvier 2007 Statut Membre Dernière intervention 26 août 2011 53
10 déc. 2007 à 16:49
Merci beaucoup,

Peux-tu m'expliquer brièvement le programme car je ne connais pas srand et rand? merci
0
mype Messages postés 2435 Date d'inscription jeudi 1 novembre 2007 Statut Membre Dernière intervention 16 août 2010 436
10 déc. 2007 à 16:53
rand c'est pour tire un nombre au hasard
comme je fait rand()%3 je tire un nombre au hasard entre 0 et 2
mais comme tu veux un nombre entre -1 et 1 alor si le nombre est 2 on considere que c'est -1
et srand(time(NULL)) c'est poour que a chaque lancement du programme le nbr aleatoire soit different
0
blux Messages postés 26030 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 10 mai 2024 3 289
10 déc. 2007 à 16:55
0
guitoontruant Messages postés 315 Date d'inscription dimanche 7 janvier 2007 Statut Membre Dernière intervention 26 août 2011 53
10 déc. 2007 à 17:00
Merci beaucoup à vous
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
guitoontruant Messages postés 315 Date d'inscription dimanche 7 janvier 2007 Statut Membre Dernière intervention 26 août 2011 53
10 déc. 2007 à 17:03
Mardon, je viens de le remarquer mais la fonction aléatoire que je voudrais ne doit pas renvoyer un int mais un float ou un double. En gros, j'aurai besoin d'un nombre décimal compris entre -1 et 1.

Désole de ne pas avoir été plus clair...
0
blux Messages postés 26030 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 10 mai 2024 3 289
10 déc. 2007 à 17:17
En C, ça doit renvoyer un entier...

Décimal, oui, mais combien de décimales ? (qui ne sont en fait que des entiers divisés par 10, 100, 1000 ou 1000000, non ?)

Mais tu peux peut-être générer une partie décimale par juxtaposition d'entier ou sinon tu te bricoles ta fonction ;-)

http://www.alrj.org/docs/algo/random.php

bon courage ! :-)
0
guitoontruant Messages postés 315 Date d'inscription dimanche 7 janvier 2007 Statut Membre Dernière intervention 26 août 2011 53 > blux Messages postés 26030 Date d'inscription dimanche 26 août 2001 Statut Modérateur Dernière intervention 10 mai 2024
10 déc. 2007 à 18:20
OK merci pour cette réponse, je vais continuer à y travailler demain.
0