tengo este código para generar números aleatorios sin que se repitan y guardarlos en una matriz, creo que se me queda en un loop infinito y no logro ver porque, he tratado de generar los números sin que se repitan de varias maneras y no lo logro, ayuda!!
(el codigo esta incompleto, extraje la parte en la que necesito ayuda)
Gracias
(el codigo esta incompleto, extraje la parte en la que necesito ayuda)
Gracias
Código (c) [Seleccionar]
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <ctype.h>
#include <windows.h>
int tableroNumerico[6][6];// aqui va a estar el tablero numerico original
int tableroNumerico2[6][6];//aqui va a estar el tablero desordenado
char tableroFigura[6][6];//aqui va a estar el tablero con la figura original
char tableroFigura2[6][6];//aqui va a estar el tablero desordenado
int repetidos[34];//este vector es para revisar los numeros repetidos en el rand
int generarNumero(int *c)
{
int numero;
bool distinto=false;
while(distinto==false)
{
srand(time(NULL));//Cambio el seed con el tiempo de ese momento.
int cont=0;
numero=rand()%34+1;
for(int i=0; i<34; i++)
{
if(repetidos[i]==numero)
cont++;
}
if(cont==0)
{
distinto=true;
repetidos[*c]=numero;
}
}
return numero;
}
void llenarTablero(char t)
{
int cont=0;
int aux=0;
if(t=='f')
{
}
else
{
for(int i=0; i<6; i++)
{
for(int j=0; j<6; j++)
{
if(i==0 && j==5)
tableroNumerico2[i][j]=0;
else
{
aux=generarNumero(&cont);
tableroNumerico2[i][j]=aux;
cont++;
}
}
}
}
}
void mostrarTablero(char t) //Aqui imprimo el tablero despues de cada movimiento
{
if(t=='f')
{
}
else
{
for(int i=0; i<6; i++)
{
for(int j=0; j<6; j++)
{
if(tableroNumerico2[i][j]==0)
printf("[ ]");
else
printf("[ %i ]", tableroNumerico2[i][j]);
}
printf(" \n");
}
}
}
main()
{
for (int i=0; i<35; i++)
repetidos[i]=0;
char tipoTablero='n';
llenarTablero(tipoTablero) ;
mostrarTablero(tipoTablero);
system("pause");
}