Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) Sequencia aleatoria


Rafael Assis

Pergunta

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!

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

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 por Kuma
Link para o comentário
Compartilhar em outros sites

  • 0
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é!

=S

vlw mesmo!

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...