Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Ac Neto

Problema no Sorteio

Recommended Posts

Olá pessoal,

 

Eu tenho duas listas encadeadas, primeiro e segunda, quero sortear elementos da lista "primeiro" e retira-las após o sorteio e coloca-los na lista "segunda", mas não estou conseguindo fazer isso, segue o código que fiz, se puderem me ajudar agradeço!!!

 

Segue o código que fiz:

 

 

void Sorteio (Lista **primeiro, Lista **segunda)
{
  Lista *atual = *primeiro,*anterior;
  int posicao = 1, x ,quantidade = 0;


 // descobrindo quantos elementos tenho na primeira lista
  while (atual != NULL)
    {
        atual = atual -> prox;
        quantidade ++;




    }
    printf("%d",quantidade);// printando para ver se está correto




  x = rand()%quantidade; // realizando o sorteio de 0 a o numero de elementos.




  while(atual!= NULL && posicao == x)
  {
      atual = atual -> prox;


      posicao ++;


      anterior = atual;


  }


  if(atual == *primeiro)


{


atual->prox = *segunda;


*segunda = atual;


*primeiro = atual;






}


else{


anterior -> prox = atual->prox;


atual -> prox = *segunda;


*segunda = atual;


}














}

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você vai selecionar (no sorteio) o valor de um nó por vez?

x = rand()%quantidade; // realizando o sorteio de 0 a o numero de elementos.

while(atual!= NULL && posicao == x) {
      atual = atual -> prox;
      posicao ++;
      anterior = atual;
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade minha intenção é que o usuário defina quantos nós serão sorteados, porém inicialmente quero sortear um elemento de cada vez a fim de testar o programa!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.