javsrt Posted February 27, 2014 at 07:00 PM Report #546965 Posted February 27, 2014 at 07:00 PM Boa tarde eu tenho uma dúvida em c. eu queria gerar números aleatórios entre um determinado intervalo, neste caso entre [10,20], e gostaria de saber como se faz obrigado
Super.D Posted February 27, 2014 at 07:16 PM Report #546969 Posted February 27, 2014 at 07:16 PM Isto vai-te gerar um número aleatório de [10, 20] int r = rand() % (21 - 10) + 10
javsrt Posted February 27, 2014 at 07:22 PM Author Report #546970 Posted February 27, 2014 at 07:22 PM mas de cada vez que que executo n gera o mesmo numero?
RafaelSobral Posted February 27, 2014 at 07:24 PM Report #546971 Posted February 27, 2014 at 07:24 PM #include <time.h> int numero_gerado; srand(time(NULL)); numero_gerado = rand() % 11 + 10; 1 Report
javsrt Posted February 27, 2014 at 07:26 PM Author Report #546972 Posted February 27, 2014 at 07:26 PM e é sempre diferente quando executo o programa?
RafaelSobral Posted February 27, 2014 at 07:26 PM Report #546973 Posted February 27, 2014 at 07:26 PM e é sempre diferente quando executo o programa? Para ser diferente tens de usar a biblioteca : #include <time.h> 1 Report
javsrt Posted February 27, 2014 at 07:29 PM Author Report #546974 Posted February 27, 2014 at 07:29 PM ok, muito obrigado
Rui Carlos Posted February 27, 2014 at 09:48 PM Report #546999 Posted February 27, 2014 at 09:48 PM Para um intervalo [min,max], uma fórmula genérica será result=min+rand()%(max-min+1). Como o RafaelSobral referiu, é necessário usar o srand (uma única vez) para que o número aleatório não seja sempre o mesmo. PS: de referir que esta fórmula não é a que garante uma melhor aleatoriedade dos números gerados (podem encontrar aqui uma solução alternativa, com aleatoriedade um pouco melhor). 1 Report Rui Carlos Gonçalves
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now