Ver Mensaje Individual
  #5 (permalink)  
Antiguo 30/08/2009, 19:16
Avatar de neandertal
neandertal
 
Fecha de Ingreso: enero-2008
Ubicación: Barcelona
Mensajes: 79
Antigüedad: 16 años, 9 meses
Puntos: 1
Exclamación Respuesta: no se generan bien numeros aleatorios

Gracias por la corrección, además me ha servido para darme cuenta de que el error esta en otra parte del código ( o eso creo ), posteare el código entero a ver si me pueden ayudar.
Código:
int main(){

    int i;
    int baraja[52];

    //Inicializo los arrays
    for (i=0; i<52; i++)baraja[i]=i;

    pinta_array(baraja);
    desordena_baraja(baraja);
    printf("Baraja de cartas desordenada: \n");
    pinta_array(baraja);
    //pinta_cartas(baraja);
    getchar();
    return 0;
}

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;
        random2=rand() % 52;
        temp = puntero[random];
        puntero[random] = puntero[random2];
        puntero[random2] = temp;
    }
}
Las funciones pinta_array() Muestra los valores de un array
y pinta_cartas() no son importantes ya que solo muestran caracteres en pantalla.

El programa devuelve ( valores antes de desordenar ):

0-1-2-3-4...51-4201408

El problema deberia estar aqui ya que esta linea asigna los valores iniciales al array:
Código:
for (i=0; i<52; i++)baraja[i]=i;
me pregunto de donde saldrá ese 4201408