Jump to content
Fórum Script Brasil
  • 0

Gerar nº aleatório


Derli Junior

Question

3 answers to this question

Recommended Posts

  • 0

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");
}

Link to comment
Share on other sites

  • 0

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.c

H:\LP\C>a

5

11

10

4

5

4

6

6

10

8

H:\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");
}

Link to comment
Share on other sites

  • 0
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 by RHER
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...