b i k a Postado Março 12, 2008 Denunciar Share Postado Março 12, 2008 (editado) e ai galera.....tava procurando uma duvida aqui na net e acabei encontrando esse forum....pesquisei antes mas não achei exatamente o que eu tava procurando....meu problema e o seguinte....eu preciso armazenar em um vetor uma sequencia de numeros aleatorios....ate ai tudo bem... o problema que eu não estou conseguindo resolver e que esses numeros não podem se repetir....alguém pode me ajudar com isso?abraço! Editado Março 13, 2008 por b i k a Título alterado por estar em desacordo com as regras do fórum! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 13, 2008 Denunciar Share Postado Março 13, 2008 Cada vez que um valor for ser inserido, percorra o vetor verificando se ele já existe. Se existir, gere outro e repita o processo. Caso contrário, insira-o.Abraços,Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 b i k a Postado Março 13, 2008 Autor Denunciar Share Postado Março 13, 2008 olha o que eu consegui fazereu verifiquei se existia o numero gerado... e se existe gera outro....mas como faço agora para repetir o teste nesse numero?obrigado!int i, j; int A[10]; srand(time(NULL)); for (i=0; i<5; i++) { A[i] = rand() % 9; for(j=1;j<i;j++) if(A[i]==A[j]) A[i] = rand() % 9; printf("%d ", A[i]); } Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Graymalkin Postado Março 14, 2008 Denunciar Share Postado Março 14, 2008 Isso deveria estar dentro de um loop. Você poderia ter um contador que seria incrementado a cada número inserido no vetor (obviamente ele não seria incrementado quando fosse um valor repetido). Quando esse contador chegasse ao número máximo de elementos no vetor (ou seja, quando este estivesse totalmente preenchido), o loop acabaria.Sacou? ;)Graymalkin Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 beradero Postado Março 20, 2008 Denunciar Share Postado Março 20, 2008 (editado) #include <stdio.h> #include <stdlib.h> #include <time.h> #define N 10 #define VALIDO 1 #define INVALIDO 0 int main(void){ int i, j, status; int A[N]; srand(time(NULL)); for (i = 0; i < N; ++i) { do { A[i] = rand() % N; status = VALIDO; for (j = 0; j < i; ++j) if (A[i] == A[j]) status = INVALIDO; } while (status == INVALIDO); printf("%d ", A[i]); } return 0; } Para deixar o codigo mais rapido: for (i = 0; i < N; ++i) { do { A[i] = rand() % N; status = VALIDO; for (j = 0; (j < i) && (status == VALIDO); ++j) if (A[i] == A[j]) status = INVALIDO; } while (status == INVALIDO); printf("%d ", A[i]); } Editado Março 20, 2008 por beradero Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 carolb. Postado Abril 29, 2012 Denunciar Share Postado Abril 29, 2012 (editado) :unsure: Editado Abril 29, 2012 por carolb. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 chai0304 Postado Maio 5, 2012 Denunciar Share Postado Maio 5, 2012 Se existir, gere outro e repita o processo. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
b i k a
e ai galera.....
tava procurando uma duvida aqui na net e acabei encontrando esse forum....
pesquisei antes mas não achei exatamente o que eu tava procurando....
meu problema e o seguinte....
eu preciso armazenar em um vetor uma sequencia de numeros aleatorios....
ate ai tudo bem... o problema que eu não estou conseguindo resolver e que esses numeros não podem se repetir....
alguém pode me ajudar com isso?
abraço!
Editado por b i k aTítulo alterado por estar em desacordo com as regras do fórum!
Link para o comentário
Compartilhar em outros sites
6 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.