Derli Junior Posted September 1, 2011 Report Share Posted September 1, 2011 Olá,Gostaria que alguém postasse uma função para geração de números aleatórios de 0 até 12.Att. Quote Link to comment Share on other sites More sharing options...
0 LacosTTe Posted September 1, 2011 Report Share Posted September 1, 2011 serve isso?...fiz a geração de 10 números..você pode testar mais.main (void){ int i=0; do { printf("\n %d \n",rand()%12); i++; } while (i<10); system("pause"); } Quote Link to comment Share on other sites More sharing options...
0 Derli Junior Posted September 5, 2011 Author Report Share Posted September 5, 2011 Poxa, cara... Eu fiz isso e não meu compilador não gerava os numeros, mas acho mais interessante que há todo instante os numeros alterem, não importa se você esteja trabalhando num vetor ou não, bem... Quando eu executava o seu código, eu tinha a seguinte saída:H:\LP\C>gcc teste.cH:\LP\C>a 5 11 10 4 5 4 6 6 10 8H:\LP\C>Isso sempre acontecia.Para resolver, eu acrescentei o seguinte código.srand ( time(NULL) );Achei que assim atendia mais o que eu pretendia fazer, mas de qualquer forma muito obrigado pela prontidão.serve isso?...fiz a geração de 10 números..você pode testar mais.main (void){ int i=0; do { printf("\n %d \n",rand()%12); i++; } while (i<10); system("pause"); } Quote Link to comment Share on other sites More sharing options...
0 RHER Posted September 19, 2011 Report Share Posted September 19, 2011 (edited) Olá,Gostaria que alguém postasse uma função para geração de números aleatórios de 0 até 12.Att.Para gerar números aleatórios, precisará da biblioteca stdlib e, para serem melhor sorteados usando o relógio, precisará da biblioteca time.# include <stdlib.h> # include <time.h> No início da função "main", faça: srand(time(0));Isso fará com que a cada segundo do tempo do relógio em que o programa abre os números sorteados sejam diferentes. A função time retorna um número que equivale à data, hora, minuto e segundo do relógio, aumentando assim o número a cada segundo. O srand(/*seed*/) define o início de uma série randomizada.Para finalizar, você pode retornar um inteiro (0~32767 em alguns compiladores, em outros pode sortear mais números) usando a função rand().Se fizer "rand()%13", ele resultará num número aleatório de 0 a 12.Repare, "rand()%n" sorteia um entre "n" números consecutivos iniciados em 0, ou seja, "0, 1, 2, ..., n-2, n-1", portanto não se sorteia 0~12 com rand()%12 mas rand()%13.Caso tenha curiosidade de saber, o método de sorteio do rand() é o Gerador de Sequências Lineares Congluenciais. Creio que isso tenha lhe dado alguns detalhes a mais, mesmo repetindo outros.Falou!!! Edited September 19, 2011 by RHER Quote Link to comment Share on other sites More sharing options...
Question
Derli Junior
Olá,
Gostaria que alguém postasse uma função para geração de números aleatórios de 0 até 12.
Att.
Link to comment
Share on other sites
3 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.