none
Ayuda con numeros aleatorios en C++ para Windows Form RRS feed

  • Pregunta

  • Hola buen día, con una consulta. Soy nuevo en C++ y utilizo el de 2010, pero el lenguaje me parece algo similar a C#. Mi pregunta es acerca de los números aleatorios, he buscado que hay dos maneras creo, cuando se utiliza el srand o el rand, pues en base a lo que he buscado intento llenar una matriz de 10 posiciones con números aleatorios entre 0 a 10, pero no lo he podido lograr, ya que desconozco como codificar correctamente lo que tengo.

    Primero para mi aplicación de Windows Form agregue las siguientes librerías:

    #include <stdio.h>   
    #include <stdlib.h>  
    #include <time.h>

    luego en un button codifique lo siguiente:

     int Lista_numeros[10];
    int c;
    c = 0;
    srand (time(NULL));
    for(c = 0; c < 10; c++)
    {
     Lista_numeros[c] = (rand() % 10) + 1;
    }

    para llenar la matriz y crear la matriz, pero al codificar en otro for una posición X para buscar el valor guardado en dicha posición o al depurar el programa solo así, no me funciona, me podrían ayudar por favor, para saber en que estoy mal y  codificando mal para que me funcione lo que quiero lograr, se los agradeciera mucho y gracias por su atención.


    • Editado j0rgit0 miércoles, 21 de agosto de 2013 0:24 error al escribir
    miércoles, 21 de agosto de 2013 0:19

Respuestas

  • No está mal escrito. Tal vez el problema sea que declaras Lista_numeros como una automática: cuando sales de la función clic, chau. No existe más. Deberías poner la declaración en otro lado.

    En C++, puedes usar rand() para generar números aleatorios incluyendo la cabecera <cstdlib>. También puedes usar vectores, incluyendo la cabecera <vector>.

    #include <vector>
    #include <cstdlib>
    #include <ctime>

    using namespace std;

    vector<int> v(10);

    srand(time(0));
    for(vector<int>::iterator i = v.begin(); i != v.end(); i++) *i = (rand() % 10) + 1;


    /dd


    • Editado Domingo22 miércoles, 21 de agosto de 2013 14:41
    • Marcado como respuesta j0rgit0 miércoles, 21 de agosto de 2013 21:27
    miércoles, 21 de agosto de 2013 14:01