He hecho una función en C que desordena elementos del array intercanbiando valores en posiciones aleatorias, para ello.
Código:
El puntero apunta a un array de longitud 52 que contiene valores ordenados del 0 al 51.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 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.