Rafael Assis Postado Junho 5, 2010 Denunciar Share Postado Junho 5, 2010 olá!Estou com um problema em gerar uma sequencia aleatoria: deve ter numeros entre 1 e 52 sem repetir nenhum numero.O codigo que fiz é o seguinte:void seq_rand(){ int seq[52]={0,}, i, j; int a; seq[0]=(rand()%MAX)+1; i=1; while(i<52){ a=(rand()%MAX); j=0; while((a!=seq[j]) && (seq[j]!=0) && (j<=52)) j++; if ((seq[j]==0) && (j<=52)){ seq[j]=a; i++; } } for(i=0; i<52; i++) printf("%d - %d\n", i+1, seq[i]); }Acontece que as ultimas posicoes ficam com valor 0; as vezes 2 posicoes, as vezes 3 ou 4.Qual o problema?desde já obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Kuma Postado Junho 5, 2010 Denunciar Share Postado Junho 5, 2010 (editado) Ve se é isso que você quer:void seq_rand() { int seq[52]={0}, i, j; int a; srand(time(NULL)); seq[0]=(rand()%52)+1; i=1; while(i<52){ a=(rand()%52)+1; j=0; while((a!=seq[j]) && (seq[j]!=0) && (j<=52)) j++; if ((seq[j]==0) && (j<=52)){ seq[j]=a; i++; } } for(i=0; i<52; i++) { printf("%d - %d\n", i+1, seq[i]); } } Editado Junho 5, 2010 por Kuma Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Rafael Assis Postado Junho 6, 2010 Autor Denunciar Share Postado Junho 6, 2010 Ve se é isso que você quer:void seq_rand() { int seq[52]={0}, i, j; int a; srand(time(NULL)); seq[0]=(rand()%52)+1; i=1; while(i<52){ a=(rand()%52)+1; j=0; while((a!=seq[j]) && (seq[j]!=0) && (j<=52)) j++; if ((seq[j]==0) && (j<=52)){ seq[j]=a; i++; } } for(i=0; i<52; i++) { printf("%d - %d\n", i+1, seq[i]); } }Vlw Kuma! Obrigado!Pelo jeito faltou só o "+1" no rand né! =Svlw mesmo! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Durub Postado Junho 6, 2010 Denunciar Share Postado Junho 6, 2010 Marcando como Resolvido.Abraços. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Rafael Assis
olá!
Estou com um problema em gerar uma sequencia aleatoria: deve ter numeros entre 1 e 52 sem repetir nenhum numero.
O codigo que fiz é o seguinte:
Acontece que as ultimas posicoes ficam com valor 0; as vezes 2 posicoes, as vezes 3 ou 4.
Qual o problema?
desde já obrigado!
Link para o comentário
Compartilhar em outros sites
3 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.