Problème avec "randomize" sous C

seb -  
 seb -
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

grofwa Messages postés 440 Date d'inscription   Statut Membre Dernière intervention   479
 
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]
0
Canard007 Messages postés 5931 Date d'inscription   Statut Contributeur Dernière intervention   215
 
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!
0
seb
 
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
0
seb
 
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!!!!
0
Canard007 Messages postés 5931 Date d'inscription   Statut Contributeur Dernière intervention   215
 
De rien l'ami

COIN!
0

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

Posez votre question
blurk Messages postés 486 Date d'inscription   Statut Membre Dernière intervention   160
 
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+
¤
0
Onde2Choc Messages postés 299 Date d'inscription   Statut Membre Dernière intervention   4
 
lol !! random() : spécificité Borland. randomize() : spécificité Borland. rand() : c'est du bon ANSI !
Comme quoi...

BOOM !
Onde2Choc, pour ne pas vous servir...
0
Canard007 Messages postés 5931 Date d'inscription   Statut Contributeur Dernière intervention   215
 
ba non justement ^^

COIN!
0
seb
 
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?
0
Canard007 Messages postés 5931 Date d'inscription   Statut Contributeur Dernière intervention   215
 
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!
0
seb
 
Ok merci! Dis comme çà^^COIN à toi aussi!
0