PDA

Visualizza la versione completa : C---Random


Lardoman
27-11-2003, 18:22
Come si usa la funzione random?
Voglio creare un programma che stampi infiniti numeri pseudocasuali compresi tra 0 e 12 sullo schermo.So che la funzione random () ma non so come si usa!
Il programma che ho provato a creare il seguente ma non compila:


//Random.c
#include <stdio.h>
#include <math.h>
main ()
{
int n;
n=random (12);
for (;; )
{
printf ("%d\n",n);
getch ();
}
}


Come si pu correggere?

LeleFT
27-11-2003, 18:35
La funzione si chiama rand() e per poterla utulizzare in modo produttivo, la devi far precedere da una chiamata a srand() che inizializza il seme del generatore.

A srand() dovresti passare un valore che non sia sempre uguale (per esempio, il numero di millisecondi trascorsi dall'accensione della macchina, o il numero di secondi corrente: ci sono delle funzioni apposite, che ora non ricordo).

Per avere dei valori compresi fra 0 e 12 sufficiente una cosa del genere:

int valore = (int) (rand() % 12) + 1;

(Se non ricordo male, infatti, la funzione restituisce un valore compreso fra 0 e 32768... 0 incluso e 32768 escluso).


Ciao.

Lardoman
27-11-2003, 19:00
Grazie mille !

maiosyet
27-11-2003, 21:49
Se per "srandomizzare" la generazione di numeri casuali in modo che vari tutte le volte, puoi fare una cosa come questa:


unsigned xxx;

printf ("inserisci il numero srandomizzante\n");
scanf ("%u" , &xxx);

srand (xxx);

printf ("%d" , 1+ (rand() %12));

Se invece vuoi che generi numeri casuali puoi basarti sull'orologio di sistema, cos:






srand (time(NULL));

printf ("%d" , 1+ (rand() %12));

Spero di aver risposto alla tua domanda :ciauz:

maiosyet
27-11-2003, 21:52
Scusa mi ero dimenticato di dirti che la libreria da invocare <stlib.h> non math :)

Loading