Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

[Dúvida] rand, srand e time(0)

Peço por gentileza uma explicação sobres as funções rand, srand e time(0). Fiquei um pouco confuso e percebi que serão bem úteis em projetos futuros... Gostaria de uma resposta que abordasse o tema geral e não somente o utilizado no game... Obrigado!!!

2 respostas
solução!

Olá, Marco!

A função rand() é uma função da biblioteca padrão do C que gera um número pseudo-aleatório. Digo "pseudo" porque, na realidade, os computadores não conseguem gerar números verdadeiramente aleatórios, emfim. A função rand() gera uma sequência de números que parecem aleatórios se você não souber o ponto de partida.

A função srand() é usada para inicializar o gerador de números pseudo-aleatórios usado pela função rand(). Se srand() não for usado antes de rand(), o programa sempre gerará a mesma sequência de números a cada execução.

A função time(0) retorna o tempo atual do sistema como um valor do tipo time_t. Ao usar time(0) como argumento para srand(), inicializamos o gerador de números pseudo-aleatórios com o tempo atual, fazendo com que a sequência de números gerados por rand() seja sempre diferente.

Aqui está um exemplo de como você pode usar essas funções:

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main() {
    srand(time(0));  // inicializa o gerador de números pseudo-aleatórios
    int random_number = rand();  // gera um número pseudo-aleatório
    printf("%d\n", random_number);  // imprime o número gerado
    return 0;
}

Neste exemplo, cada vez que você executar o programa, ele imprimirá um número diferente.

A título de curiosidade deixo um artigo que pode lhe auxiliar no entendimento:

Espero ter ajudado e reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!

Sucesso

Um grande abraço e até mais!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Top demais! Valeu!!!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software