demoven
Power Member
Boas. Alguém pode indicar o erro neste algoritmo? Objetivo é baralhar as cartas, gerando um "j" aleatório e trocando uma carta "i" com outra carta da posição random. Porém, está a dar break. Penso que o erro está na passagem dos argumentos. Obrigado
Código:
void baralhar(Carta baralho[40])
{
char aux[40];
int j=0;
for(int i=0;i<40;i++)
{
j = rand() % 40;
troca(&baralho[i],&baralho[j],i,j);
}
}
Código:
void troca(Carta baralho[40],Carta baralho2[40], int i,int j)
{
Carta aux[1]={ };
aux[0].valor=baralho[i].valor;
baralho[i].valor=baralho2[j].valor;
baralho2[j].valor=aux[0].valor;
strcpy(aux[0].naipe,baralho[i].naipe);
strcpy(baralho[i].naipe,baralho2[j].naipe);
strcpy(baralho2[j].naipe,aux[0].naipe);
free(aux);
}