SoloCodigo
Programación General => C/C++ => Mensaje iniciado por: zure en Martes 11 de Junio de 2002, 23:18
-
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;
}
}
-
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 (http://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:)
-
/*
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;)