Ir para o conteúdo
dioguito

Limpar Memoria numa funcao Random

Mensagens Recomendadas

dioguito    0
dioguito

boas

Estou a fazer um projecto que se tem de gerar varios numeros com a função Random mas os numeros que sao criados sao sempre iguais.

Gostava que me ajudassem a arranjar uma maneira de isso nao acontecer.

cumprimentos

Diogo Martins

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
pmg    102
pmg

Como assim: "são sempre iguais"?

a) São sempre iguais de cada vez que chamas a função rand()?

ou

;) são sempre iguais de cada vez que chamas o programa?

Se a) mete aqui o código

Se :P inicializa o gerador de números aleatórios com uma coisa diferente para cada invocação do programa: por exemplo

#include <stdlib.h>
#include <time.h>
/* ... */
int main(void) {
  srand(time(0));
  /* ... */
  return 0;
}

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
dioguito    0
dioguito

sao sempre iguais kuando chama a funcao random.

# include <stdio.h>
# include <stdlib.h>
# include <time.h>

#define NUMS 50


int numsrandon (int limite)
{
int a;
srand ((unsigned)time(NULL));
a= rand()%limite;
return(a);

}

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
_deXter    0
_deXter

Exacto, tal como disse o Rui Carlos, a função srand deve ser chamada uma única vez. Assim, chamá-la no início do main como sugeriu o pmg será uma solução. :P

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Rui Carlos    312
Rui Carlos

pois eu sei que sim.

mas o que eu queria mesmo era gerar 5 numeros diferentes.

abraço

Tanto faz que queiras gerar 1 como 1000 números, a função srand só deve ser chamada uma vez em cada execução do programa.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade