Obtener numeros aleatorios en C++ (rand, srand)

Es algo muy frecuente, cuando ya dominas todo eso de pedir y almacenar datos, ahora tu profesor te pedirá que tus programas generen números aleatorios para automatizar el proceso de llenar arreglos y todo eso.

Así que lo primero que tenemos que hacer es incluir la librería:
#include<stdlib.h>
Luego inicializar los números aleatorios incluyendo esto:
srand(time(NULL));
*Actualización: No se porqué con algunos IDE’s tira error con la función time. Solo hay que utilizar además la librería time.h:
#include<time.h>
Luego guardar el número aleatorio en alguna parte:
num=rand();

Eso es básicamente. Para ajustar el rango de número aleatorios podemos hacer varias cosas.

Número aleatorios entre 0 y 50:
num=rand()%51;

Número aleatorios entre 1 y 100:
num=1+rand()%(101-1);

Número aleatorios entre 250 y 420:
num=250+rand()%(421-250);

De forma general es:
variable = limite_inferior + rand() % (limite_superior +1 - limite_inferior) ;

Así que un programa que muestre 10 números aleatorios entre 1 y 10 quedaría así:

#include
#include
using namespace std;

int main()
{
    int num,c;
    srand(time(NULL));
    for(c=1;c<=10;c++)
    {
        num=1+rand()%(11-1);
        cout<<num<<" ";
    }
    cin.get();
}

87 thoughts on “Obtener numeros aleatorios en C++ (rand, srand)

  1. Hola disculapa!! Como le puedo hacer para que la funcion o rand(); al generarme un numero aleatorio no me lo vuelva a mostrar en el programa? =(

  2. hola que tal yo tengo una duda como podria hacerle para que me genera 100 numero aletorias y que despues me imprimiera cual era el mayor y el menor todos lo numeros este es mii codigo…
    #include
    #include
    #include

    void impr(int lista[], int n){
    for (int i=0; i<n; i++){
    printf("%8i", lista[i]);
    }
    }
    int main(){
    srand (time(NULL));
    int arreglo[100];
    for (int i=0; i<100; i++)
    arreglo[i]=rand() %100;

    impr (arreglo, 100);
    /
    printf("n———-n%in", arreglo[10]);

    system("pause");
    return 0;
    }

  3. hola necesito ayuda con este programa en c++
    necesito sacar el promedio de cada alumno y de ahi el promedio grupal pero no se como

  4. Graicas amigo que gusto mucho tu explicación. Me cree un programa que genera n series aleatorias en una matriz con números entre 1 y 50😀. Aunque me gustaría como asegurar que ningun número en una serie se repita (cuando los intervalos son más pequeños).

  5. Hola, una consulta. Cómo puedo generar números aleatorios entre -10 y 10, por ejemplo. Gracias

  6. muy bueno el programa ayuda con este programa porfa
    Escribir un programa en lenguaje C que
    El usuario escribe un numero n entre 1 y 15 (validar el valor de n)
    El programa genera de forma aleatoria los n elementos del conjunto
    Muestra el conjunto generado en notación de conjuntos
    Muestra la cardinalidad de conjunto potencia
    Muestra el numero de subconjuntos de tamaño 0, 1, … n que tiene dicho conjunto potencia.
    El programa genera tres conjuntos de tamaño aleatorio entre 1 y n y por cada uno de ellos determina si los conjuntos generados son subconjuntos, subconjuntos propios o no son subconjuntos.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s