Título: ¿Como generar números aleatorios sin repetir en este programa que hice en C? Publicado por: emilosther en 23 Diciembre 2014, 21:15 pm En este programa hecho en C tengo un vector o array que contiene 12 números diferentes, y con rand lanzo aleatoriamente los números que contiene ese array, el problema surge cuando algún numero de ese array se repite, lo cual no quiero que suceda.
aquí mi código: #include <stdio.h> #include <stdlib.h> #include <time.h> void aleatorio(); int main() { printf("aqui vemos un ejemplo de numeros aleatorios que no se repiten\n\n"); aleatorio(); printf("\n"); system("PAUSE"); return 0; } void aleatorio() { int v[] = {54,65,43,6,5,32,100,34,76,22,13,9}; int numero; int i; int semilla=time(NULL); srand(semilla); for(i=0; i<12; i++){ numero=rand()%12; printf("%i\n",v[numero]); } } Soy un novato en esto de la programación, por lo que hay cosas que se me dificultan mucho a la hora de crear algo nuevo, así que les agradecía mucho si me dieran una mano :D Título: Re: ¿Como generar números aleatorios sin repetir en este programa que hice en C? Publicado por: ivancea96 en 23 Diciembre 2014, 21:19 pm Por ejemplo, puedes hacer: "Mientras el número nuevo número generado ya exista en el array, se le suma 1"
EDITO: Entendí mal la pregunta. Otra posibilidad, podría ser ir eliminando los números ya elegidos; Título: Re: ¿Como generar números aleatorios sin repetir en este programa que hice en C? Publicado por: _Enko en 23 Diciembre 2014, 22:18 pm O puedes hacer como se hacen con los naipes, los barajas.
Código
Es decir, en vez de elegir aleatoriamente desde los elementos del vector, intercambias la posicion aleatoriamente de los elementos del vector. Tal y como se hace con una baraja de naipes. Saludos |