Lary B 0 Denunciar post Postado Dezembro 31, 2010 Oi pessoal, eu tenho que fazer um sorteio de números e os armazenar em um vetor mais não pode haver numero repetido neste vetor. O programa faz isso, mas na hora de mostrar o vetor, ele demorar um pouco e só depois mostra os números. O compilador não mostra nenhum erro, então acredito que seja erro de lógica, mas não consigo achar. Compilador: DevC++ int sorteio (int num) { srand(time(NULL)); num=rand()%10; return num; } int main (){ int i,j,pedras[10],achou,num; for (i=0;i<10;i++) { achou=0; while (achou==0) { achou=1; pedras[i]=sorteio(num); for (j=0;j<10;j++) { if ((pedras[j]==pedras[i])&&(i!=j)) { pedras[i]=sorteio(num); achou=0; j=10; } } } } for (i=0;i<10;i++) { printf("%d\n",pedras[i]); } Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 31, 2010 Sugiro uma implementação diferente: use o conceito de uma urna, dessas que usamos em sorteios. Ao sortear um número, retire-o da urna. Isso garante a inexistência de repetições. Voce pode fazer isso com algoritmos usando duas vetores (ou listas): uma com a amostra e outro com os sorteados veja este tópico: http://forum.imasters.com.br/index.php?/topic/418584-criar-uma-sequencia-numerica-e-randomica-sem-repetir-valor/ Compartilhar este post Link para o post Compartilhar em outros sites
Lary B 0 Denunciar post Postado Janeiro 1, 2011 Consegui, realmente a implementação é mais simples,e bem menor. Beraldo,vlw mesmo pela ajuda. :joia: Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Janeiro 3, 2011 Em C++ se precisar algum dia kk, o Container Set da conta do recado. []s Compartilhar este post Link para o post Compartilhar em outros sites