Fonction aléatoire en C

guitoontruant Messages postés 315 Date d'inscription   Statut Membre Dernière intervention   -  
guitoontruant Messages postés 315 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

5 réponses

mype Messages postés 2435 Date d'inscription   Statut Membre Dernière intervention   437
 
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   Statut Membre Dernière intervention   53
 
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   Statut Membre Dernière intervention   437
 
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 27133 Date d'inscription   Statut Modérateur Dernière intervention   3 361
 
0
guitoontruant Messages postés 315 Date d'inscription   Statut Membre Dernière intervention   53
 
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   Statut Membre Dernière intervention   53
 
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 27133 Date d'inscription   Statut Modérateur Dernière intervention   3 361
 
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   Statut Membre Dernière intervention   53 > blux Messages postés 27133 Date d'inscription   Statut Modérateur Dernière intervention  
 
OK merci pour cette réponse, je vais continuer à y travailler demain.
0