Ac Neto 0 Denunciar post Postado Dezembro 7, 2013 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
reebr 94 Denunciar post Postado Dezembro 8, 2013 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
Ac Neto 0 Denunciar post Postado Dezembro 8, 2013 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