Problème avec "randomize" sous C

Hello tout le monde! Je débute la prog en C, et là je suis un peu paumé...
Je suis en train d'écrire un petit prog qui simule un dé: classique. Je compile avec lccWin32, et je rencontre un gros problème avec la fonction "randomize".
En effet le compilateur ne reconnait pas cette "fonction"; j'ai pourtant chargé "stdlib" mais çà ne fonctionne pas.
J'avais déjà rencontré des problèmes avec la fonction "random". Le cours que j'utilise préconise l'emploi de cette fonction, mais j'ai trouvé une alternative avec rand...
Mais le problème c'est que je n'arrive pas à trouver un substitut à cette fonction randomize: donc à chaque fois que je lance l'executable, mon dé virtuel me donne toujours le même chiffre...alors si suelqu'un aurait une idée....merci énormément d'avance!!!

10 réponses

  • Votes
  • Date
  • Date décroissante
  1. Salut,

    Je pense que tu dois faire
    #include <time.h>

    pour le randomize.

    Michael.

    Ne vous souciez pas de n'être pas remarqué ; cherchez 
    plutôt à faire quelque chose de remarquable [Confucius]
    1. Contributeur
      tu trouvera ta fonction dans time.h je crois

      sinon, ya mieu encore pour les nombres aleatoires par exemple avec GetTickCount et srand tu peux donner un nombre aleatoire compris entre 2 nombres avec le modulus %
      exemple :

      #include "time.h"

      void main()
      {
      int a;

      srand(GetTickCount ());
      a=rand()%30;
      printf(" %d",a);
      }

      ce code va donner un nombre aleatoire a a entre 1 et 30
      random() et randomize(), c'est spécifique à C++ Builder, même si c'est dans les fichiers d'includes standard. Evite de les utiliser
      Borland a tendance à "inventer" des fonctions "standards", comme gotoxy(), clrscr(), textcolor(), textbackground(), setcursortype(), wherex(), wherey().

      COIN!
      1. Hello Michael!
        Je viens de regarder dans time.h, mais elle ne contient pas randomize...
        Tiens voilà un bout du code...

        """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
        #include <stdio.h>
        #include <conio.h>
        #include <math.h>
        #include <stdlib.h>
        #include <time.h>

        int main()
        {
        int nbr_alea; //varaible du nbr aléatoire
        int u; //variable utilisateur

        randomize();
        clrscr();
        nbr_alea = rand () % 10 +1;
        printf("%d\n", nbr_alea);

        printf("Essayer de trouver le nbr mystere!!!\nSaisissez un chiffre entre 1 et 10:\n");

        return (0);
        }
        """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
        Voili Voilou... au moment de compiler, il mets la chose suivante:
        undefined reference to _randomize
        1. Merci Canard!!! J'avais poster à la va-vite!!!! Cà marche maintenant!
          Si tu savais le temps que j'ai passer à essayer de bidouiller une pseudo solution pour contourner le problème. Merci enocre!!! Coin coin à toi!!!!
          1. Contributeur
            De rien l'ami

            COIN!
        2. salut!

          vous voulez du C portable ANSI ISO de chez time.h ?
          voilà comment échaper à randomize

          #include <stdlib.h>
          #include <stdio.h>
          #include <time.h>
          
          int main(void)
          {
             int i;
             time_t t;
          
             srand((unsigned) time(&t));
             printf("10 nombres aleatoires de 0 à 99\n\n");
             for(i=0; i<10; i++)
                 printf("%d\n", rand() % 100);
             return 0;
          }
          

          trouvé dans les exemples de C++ Builder ;-)
          a+
          ¤
          1. lol !! random() : spécificité Borland. randomize() : spécificité Borland. rand() : c'est du bon ANSI !
            Comme quoi...

            BOOM !
            Onde2Choc, pour ne pas vous servir...
            1. Merci pour vos réponses et vos éclairages sur la chose...
              Canard a dit:
              srand(GetTickCount ());
              a=rand()%30;
              printf(" %d",a);
              }

              ce code va donner un nombre aleatoire a a entre 1 et 30

              Comment fais tu pour déterminer les deux bornes??? Par ex un nrb aléatoire entre 15 et 27?
              1. Contributeur
                le %30 crorespond a un modulo 30 pour faire entre 15 et 27 je te conseil de calculer la taille de ton interval:
                27-15=12
                donc un rand()%12
                et de rajouter 15 pour te replacer dans l'interval voulu:
                donc a = 15+rand()%12

                des maths quoi ^^
                COIN!