Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Vergil

Randomizar em C

Recommended Posts

Como uso o comando Randomize em C?em pascal, se não me engano é: Randomize(); Random(100);

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem certeza que existe essa função em C++???acho que existe uma rand() que pega um numero entre 0 e 32.....pra você obter o intervalo que deseja tem que usar o mod (%) e tal. ex: você quer que a variavel 'a' receba um valor aleatorio entre 0 e 20, você faza=rand()%21acho que é isso ae!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

usa-se a <stdlib.h>int x;Randomize();x = random(10,100);

Compartilhar este post


Link para o post
Compartilhar em outros sites

para fazer criar um valor randomico em C/C++ você utiliza as funções

long int rand()

void srand(int)

que estam na <stdlib.h>

o exemplo abaixo mostra na tela 10 números entre 0 e 99;

#include<stdio.h>#include<conio.h>#include<stdlib.h>main(){    srand(10);    for(int i=0; i<10;i++){    printf("%d\n",rand()%100); }    getch();}
mas isso não eh um verdadeiro random, pq o programa vai mostrar sempre os mesmos 10 numeros, isso ocorre pq você está usando a mesma 'seed' (semente)

que no caso eh 10. Para fazer um verdadeiro random você tem usar seeds diferentes cada ves que o programa for rodado, um jeito de fazer isso eh utilizando a função:

time(); da <time.h>

 

o exemplo a baixo mostra 10 diferentes cada fez que o programa for executado

#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<time.h>main(){    srand(time(NULL));    for(int i=0; i<10;i++){    printf("%d\n",rand()%100); }    getch();}
time(NULL) retorna o numero de segundos passados desde 1 de janeiro de 1970

 

caso você queira um valor enter dois numeros " random(10,20); " fica um pouco mais complicado...

#include<stdio.h>#include<conio.h>#include<stdlib.h>#include<time.h>#define MAX(A,B) (((A)>=(B))? (A) :(B))#define MIN(A,B) (((A)<=(B))? (A) :(B))int random(int a, int b){    return ( MIN(a,b) + rand()%(MAX(a,b)-MIN(a,b)));}main(){    srand(time(NULL));    for(int i=0; i<10;i++){    printf("%d\n",random(10,20)); }    getch();}
eu acho q eh isso q você tava querendo, se pinta alguma duvida eh so pergunta, falow. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

obs:

o "srand()" soh precisa ser definido uma vez no programa

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu! Era isso que eu queria.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.