Fonction aléatoire en C

guitoontruant Messages postés 316 Statut Membre -  
guitoontruant Messages postés 316 Statut Membre -
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
--

L'important, c'est les trois points...
Configuration: Windows XP
Firefox 2.0.0.11

5 réponses

  1. mype Messages postés 2459 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
  2. guitoontruant Messages postés 316 Statut Membre 53
     
    Merci beaucoup,

    Peux-tu m'expliquer brièvement le programme car je ne connais pas srand et rand? merci
    0
  3. mype Messages postés 2459 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
  4. guitoontruant Messages postés 316 Statut Membre 53
     
    Merci beaucoup à vous
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. guitoontruant Messages postés 316 Statut Membre 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
    1. blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention   3 455
       
      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
      1. guitoontruant Messages postés 316 Statut Membre 53 > blux Messages postés 2060 Date d'inscription   Statut Modérateur Dernière intervention  
         
        OK merci pour cette réponse, je vais continuer à y travailler demain.
        0