Hola a todos,
He hecho una función en C que desordena elementos del array intercanbiando valores en posiciones aleatorias, para ello.
Código:
void desordena_baraja(int *puntero){
int i,temp,random,random2;
srand(time(NULL));
//Se desordena el array
for (i=0; i<200; i++){
random=rand() % 52 + 1;
random2=rand() % 52 + 1;
temp = puntero[random];
puntero[random] = puntero[random2];
puntero[random2] = temp;
}
}
El puntero apunta a un array de longitud 52 que contiene valores ordenados del 0 al 51.
El problema que tengo es que tras pasar esta función en algunas ocasiones me aparece en el array un valor 2009091650 que no deberia estar ahi, y aparece por alguna razón, ya que he comprobado los valores del array antes de llamar a la función y son correctos.