# Ayuda ¿Como se usa la funcion rand ()?



## Not (Feb 20, 2011)

Hola buenas noches haber si hay alguien que sepa usar esta funcion, es en ansi c.

Pues bien en realidad tengo que hacer un programa que genere un caracter al azar, pero no he encontrado dicha funcion, pero me sirve la funcion rand (), y luego asignarla a un array que muestre el caracter aleatorio.
Son 4 caracter al azar asi que ¿como puedo usar la funcion que muestre solo 4 numeros?
He intentado escribir:

rand (3); // pero no compila

Tambien he intentado:

rand (0,3); //tampoco compila

No sé si alguien sabe el problema.
El compilador que utilizo es el Dev++.

Un saludo y muchas gracias


----------



## dukex (Feb 20, 2011)

Cuando yo progamaba en Borland C++ para generar un número aleatorio primero se inicializaba con randomize() y luego se solicitaba el número aleatorio con random(num) el cual devolvia un número aleatorio ente 0 y num-1. 

Que error te arroja cuando intentas compilar?? puedes dar mas información al respecto??? ...no será que antes de usar rand()  debes utilizar otra función para inicializar?? algo como srand()??  también deberias revizar la ayuda acerca de esa función rand() depronto no recibe ningún parametro.... 


PD: un computador no genera números aleatorios  sólo cuasi-aleatorios


Saludos


----------



## Not (Feb 20, 2011)

Hola dukex pues la verdad es que no se inicializar la funcion pero me devuelve un error: too many arguments to functions (demasiados argumentos a las funciones), he visto por algun sitio lo de srand (), pero no se muy bien usarla, y ademas el profesor no nos advirtio de este suceso.

Si necesitas algun dato mas piedelo.

Muchas gracias


----------



## dukex (Feb 20, 2011)

La función srand() sólo la llamas una vez dentro de tu programa o función, si estás en el main(si es que ese lenguaje tiene main) seria algo como:

void main()
{int i;

 srand();


 for(i=0;i=100;i++)
   {
     printf("numero: %d ",rand(10));
   }


}

este programa imprime 100  números pseudo-aleatorios entre 0 y 10

como puedes ver la función rand() se llamó 100 veces dentro de un ciclo, y la función srand() sólo una vez al inicio del programa.

saludos.


----------



## Not (Feb 21, 2011)

Hola dukex ya esta solucionado, asi se consigue numero aleatorios (por si alguien lo necesita).


    for (i=0; i<10; i++)
    {  srand (time (NULL));
       aleatorio=rand()%4;
       printf ("%c", posible_caracter [aleatorio]);
       antes=time (NULL);
       scanf ("%c",&letra_pulsada _); //¿& esta bien?
       despues= time(NULL);
          if (letra !=posible_caracter [aleatorio])
              fallo++;
       tiempo = despues-antes; 
       media=media+ tiempo ;

     }

PD: para conseguir parametros distintos se usa time (NULL) asi no repite la misma secuencia cada vez que se inicia el programa.

Muchas gracias_


----------

