AD

¿Ya dominas lo básico? Un curso estructurado de C es la vía rápida para dar el salto.

Ver cursos de C en Udemy

Enlace de afiliado. No te cuesta nada extra.

🔧Lecciones de C
Lección 53 / 68

Generar números aleatorios

En esta lección obtendrás números al azar.

rand() devuelve un entero aleatorio, y con el resto se limita a un rango: rand() % 6 + 1 simula un dado. srand(time(NULL)) inicializa la semilla con la hora actual.

El código de ejemplo tira un dado y elige una jugada de piedra, papel o tijera. La salida cambia cada vez que se ejecuta, así que lo que ves aquí es solo un ejemplo de una tirada concreta.

Sin srand, la secuencia es siempre la misma en cada ejecución, porque el generador parte de una semilla fija. Eso desconcierta la primera vez, y en cambio resulta útil para depurar: fijando la semilla, un fallo aleatorio se reproduce.

Dos avisos. El resto introduce un ligero sesgo cuando el rango no divide exactamente al máximo de rand(); para juegos da igual, para estadística no. Y rand() no sirve para nada relacionado con seguridad: es predecible. Para contraseñas o claves hay que usar el generador criptográfico del sistema.

📖 Código de referencia
✍️ Tu código
Escribe tu código y pulsa «Ejecutar»

🧪 Este sitio no puede compilar ni ejecutar C directamente, así que comprueba al instante si lo que escribiste coincide con el código de referencia (la corrección ocurre por completo en tu navegador; no se envía nada a ningún servidor).

🔗 El mismo tema en otros lenguajes

Mira cómo se escribe lo mismo en otro lenguaje.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)