[C] Entremezclar valores de un vector

Iniciado por Rockmore, 4 Diciembre 2010, 18:42 PM

0 Miembros y 1 Visitante están viendo este tema.

Rockmore

Saludos. Traigo un fragmento de programa en el cual he de crear un juego de black jack. Bien, más o menos tengo una idea de cómo montármelo, sin embargo, al ir probando poco a poco obtengo un problema curioso, y es que el código compila bien, sin embargo, el programa se queda colgado. Concretamente, creo que el problema está al barajar el vector en el que están contenidos los valores de las cartas, ya que es a partir de ahí donde se bloquea, aunque el prompt siga parpadeando.
    for(i=0,j=0;i<4;i++){
        for(val=1;val<=13;j++,val++){
            baraja[j]=val;
        }
    }//Creacion de la baraja
.....................
.....................
        for(it=0;it<500;i++){
            i=rand()%52;
            do{
                j=rand()%52;
            }while(i==j);
            temp=baraja[i];
            baraja[i]=baraja[j];
            baraja[j]=temp;
        }//Barajando la baraja


Al principio pensé que eran demasiadas iteraciones al barajar, pero ni con 5 se resolvía. Hay un printf seguido de un getche tras barajar a modo de comprobación, y al no aparecer es lo que me hace sospechar que pueda haber algún error en ese bucle. ¿Alguna idea?

do-while

- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!

Rockmore

Cierto, qué error más tonto. Había creado un bucle infinito por una letrita de nada.
¡Muchas gracias!