Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, gostaria de saber como faço para definir um intervalo para a função rand().
Exemplo: Quero gerar um numero qualquer entre 1 e 1000 ou entre 50 e 90. Alguém sabe como eu defino isso?
este link só mostra como gerar um numero em certo intervalo no C++.
a solução que eu achei aqui foi:
int min, max, num;
srand()
num = (rand()% max - min) + max;
Mostra em C também. É só dar uma lida com mais atenção.
Se você ler com mais um pouquinho de atenção, vai notar que não.
O codigo que ele mostra para o C é o seguinte
/*
* This code is written in C, but it could just as easily be done in C++.
* The rand() and srand() functions are available in both languages.
*/
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main(void)
{
int i;
srand(time(NULL));
i = rand();
printf ("Your random number is %d\n", i);
printf ("This compiler can generate random numbers from 0 to %d\n", RAND_MAX);
return(0);
}
E de modo algum esse codigo delimita um intervalo.
mano eu faço assim:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, r;
a=1;
while(a){
r = rand()%6; /* gera numero randomico de 0 a 5 */
printf("randomico %d\n",r);
printf("digite 0 para sair\n");
scanf("%d",&a);
}
return 0;
}
não sei se é a forma mais correta mas funciona :thumbsup:
>
mano eu faço assim:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int a, r;
a=1;
while(a){
r = rand()%6; /* gera numero randomico de 0 a 5 */
printf("randomico %d\n",r);
printf("digite 0 para sair\n");
scanf("%d",&a);
}
return 0;
}
não sei se é a forma mais correta mas funciona :thumbsup:
A grande duvida era fazer ele gerar um numero a parti de 1 e não de 0, mas acho q já consegui :D
r = (rand() % 5) + 1; / gera numero randomico de 1 a 5 /
Abraços :D
http://faq.cprogramming.com/cgi-bin/smartfaq.cgi?answer=1042005782&id=1043284385