| |||
Cita: Te lo aclaro.
Iniciado por Instru Usa la funcion rand(). Se encuentra en stdlib.h y regresa una valor semialeatorio. Tambien hay otras funciones como s_rand y cosas asi que se basan en un numero para regresar el numero aleatorio. saludos rand() devuelve un número "aleatorio" que te es suficiente para los programas que quieras hacer. El problema es que, como tal función, siempre devolverá la misma secuencia de números. Para cambiar el número inicial (llamado semilla), se usa la función srand(). Ahora pensarás, pues uso srand(rand()) para hacerlo. No, porque siempre devolvería el mismo número. Para conseguir números aleatorios lo mejor es usar la fecha del sistema para conseguirlos, ya que varía cada segundo. Aquí te dejo el ejemplo:
Código:
Esa función te simplifica el uso de rand() para que devuelva números entre un rango.#include <stdio.h> #include <stdlib.h> #include <time.h> int alea(int desde, int hasta) { return rand()%(hasta-desde+1)+desde; } int main() { int i; /* Conseguimos una semilla con la fecha */ srand(time(NULL)); /* Usamos la función para obtener números */ for(i=0;i<10;i++) { printf("%i\n",alea(1,100)); } return 0; } Prueba el programa, Instru, y verás lo importante que es el "s_rand". |
| ||||
Bueno, lo que por lo general hacia era usar rand y el operador %. Entonces si queria una numero aleatorio que fuera hasta 600 usba rand()%601 y listo, nunca me fallo, me dio numeros aleatorios bien, pero de todos modos voy a intentar lo nueva forma ya que podria servir tambien. Saludos |
| |||
Cita: Sí, pero los números aleatorios serían la misma secuencia. Compruébalo.
Iniciado por Instru Bueno, lo que por lo general hacia era usar rand y el operador %. Entonces si queria una numero aleatorio que fuera hasta 600 usba rand()%601 y listo, nunca me fallo, me dio numeros aleatorios bien, pero de todos modos voy a intentar lo nueva forma ya que podria servir tambien. Saludos |