Programación General > C/C++

 Re: Vector con N° aleatorio sin repetirse

(1/1)

zure:
Hola! Como hago para crear un vector con numeros aleatorios (con random) si que se repitan estos numeros. Tengo esto, porfa diganme donde esta el error:

for (i=0; i<=20; i++)
{
t=1+ random(75);
for (j=0; j<=i; j++)
{
if (t==vector[j])
  {
     i--;
else
   vector[j]=t;
}
}

Ismael:
La verdad que el fragmento de código que envías no indica mucho, sin saber qué es vector[]...
Si quieres que no repita números, recorre el vector y si hay alguno repetido, genera uno nuevo.
Un código que  puede serte útil lo tienes en la sección de "Arrays" de

www.geocities.com/ismaelcamarero

el programa se llama "primitiva.zip" y simula la generacion de los números para un tipo de lotería (sin valores repetidos)
Espero que te sirva
Ismael:)

LamKros:
/*
Aqui tienes un mini-programa como una solucion
Espero que te sirva
*/

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

/*Realizado por Lamkros*/

int main()
{int i,j,t;
bool ok=true;
int vector[21];
i=0;
srand(time(0));  //inicializa el rand

while (i<=20)
{ok=true;
t=(rand()%75)+1; //Calculo en num aleatorio
j=0;
while ((ok)&&(j<i)) //Compruebo que no esta ya
{
if (vector[j]==t)
{ok = false;}
else
{++j;}
}
if (ok)  // Si no está incremento i y le doy al vector su valor t
{vector=t;
++i;}

}

//Imprime todos los valores
for (i=0;i<=20;++i)
{cout <<endl<<vector<<", ";}
 
system("PAUSE");
return 0;
}

//Suerte;)

Navegación

[0] Índice de Mensajes

Ir a la versión completa