Funcão que retorna um número aleatório

1 resposta
P

Olá, estou precisando muito de ajuda em C, estou fazendo um jogo de dados e estou enroscado numa parte, criei uma função que retornasse um número aleatório, acontece que ele me dá um número aleatório mas repete o número quando vou pedir e não sei porque, vou postar pra vocês dois pedaços do meu código para entenderem melhor.

int main(void) {
	
	int acao, jogador, computador;
	
	printf("Deseja jogar? 1-Sim 2-Não: ");
	scanf("%d", &acao);//pegando resposta do jogador
	if(acao == 1) {}//abre o jogo
	else {exit(0);}//fecha o jogo
	int dado = random();
	lancamento_inicial(dado);
	printf("O numero sorteado foi: %d\nRodada n: %d\nO ponto do jogador é: %d\n", dado, rodada, dado);
	jogador = random();
	computador = random();
	printf("Numero sorteado jogador: %d\nNumero sorteado computador: %d\n", jogador, computador);
	lancamento_rodadas(jogador, computador, dado);

Bom, o problema está com esse random, quando eu chamo ele para me dar um número aleatório para o dado, ele funciona normal, o problema é quando vou pedir um numero aleatório para a variável jogador e computador, ele simplesmente está repetindo os valores que deu para variável dado. Aqui está a parte do código que está dando problema.

int random() {
	int lanca_dado;
	srand(time(NULL));
	lanca_dado = rand() % 12+1;
	return lanca_dado;
}

1 Resposta

L

srand(time(NULL)); só execute isso uma vez, no início do programa. Tire da função random, coloque no começo do main.

Criado 24 de abril de 2020
Ultima resposta 24 de abr. de 2020
Respostas 1
Participantes 2