Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

miguel__1

[Resolvido] Função Random

Mensagens Recomendadas

miguel__1    1
miguel__1

Boas malta,

Queria fazer um random entre dois numeros, 0 e 1 por exemplo, e queria guardar o resultado na variavel. Já tentei e nas minhas pesquisas não consegui encontrar uma resposta. O que fiz foi:

int i=0;
srand((unsigned) time(NULL));
i = 0+(rand())%2;

Dá-me sempre o mesmo valor... :confused:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo    1151
HappyHippyHippo

sabes quais são as opções entre 0 e 1 ? são mesmo poucas ... vai tentando e verás que alguma vez irá mudar

além disso, para obter um valor (pseudo) aleatório entre 0 e 1 basta:

int i;
srand(time(NULL));
i = rand() % 2;


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
miguel__1    1
miguel__1

sabes quais são as opções entre 0 e 1 ? são mesmo poucas ... vai tentando e verás que alguma vez irá mudar

além disso, para obter um valor (pseudo) aleatório entre 0 e 1 basta:

int i;
srand(time(NULL));
i = rand() % 2;

Dá sempre o mesmo.... :confused:

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo    1151
HappyHippyHippo

Dá sempre o mesmo.... :confused:

continua a tentar ...

ps : coloca aqui todo o teu código (dentro das tags apropriadas claro)

Editado por HappyHippyHippo

IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
miguel__1    1
miguel__1

continua a tentar ...

ps : coloca aqui todo o teu código (dentro das tags apropriadas claro)

Todo ou a parte onde estou a fazer isso?

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
miguel__1    1
miguel__1

todo o código relevante à secção que pretendes criar ...

Código relativamente a essa parte ainda não tenho quase nada mas o programa é pra ser um jogo de tabuleiro e os jogadores é que escolhem a dimensão, mas eu não queria que fosse sempre o mesmo então queria fazer de modo a que fosse aleatorio.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
miguel__1    1
miguel__1
se tens pouco código .. .então apresetna todo !!

O que tenho nesta parte é isto, mas ainda não está completo nem tudo a funcionar.

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

typedef struct info_jogador Jogador;
struct info_jogador{
int num;
	char nome;
	int pontuacao;
};

void criajogo()
{
int colunas_A=0, linhas_A=0, colunas_B=0, linhas_B=0 ;
int ok_A=0, ok_B=0, tabuleiro_ok=0;

printf("\nDimensoes do Tabuleiro:");
do{
	do
	{
		printf("\n\n\n Jogador A \nNº Linhas(4-8): ");
		scanf(" %d", &linhas_A);
		printf(" \nNº Colunas(6-10): ");
		scanf(" %d", &colunas_A);
		if ((colunas_A < 6 || colunas_A > 10) && (linhas_A < 4 || linhas_A > 8 ))
			printf("Dimensoes Erradas, Inserir novamente!");
		else if((colunas_A >= 11 || colunas_A <= 5 ) && (linhas_A >= 4 || linhas_A <= 8 ) )
			printf("N Colunas Erradas, Inserir novamente!");
		else if ((colunas_A <= 10 || colunas_A >= 6) && (linhas_A < 4 || linhas_A > 8 ))
			printf("N Linhas Erradas, Inserir novamente!");
		else          // PORQUE ESTA A ENTRAR NO ELSE QUANDO ESTA ERRADO???? ex: se meter num de linhas maior que o de colunas
		{
			if(linhas_A >= colunas_A)
				printf("Dimensoes Erradas! O numero de colunas tem que ser superior ao de linhas!");
			else
				ok_A = 1;
				printf("Dimensoes corretas");



		}

	} while(ok_A=0);

	do
	{
		printf("\n\n\n Jogador B \nNº Linhas(4-8): ");
		scanf(" %d", &linhas_B);
		printf(" \nNº Colunas(6-10): ");
		scanf(" %d", &colunas_B);
		if ((colunas_B < 6 || colunas_B > 10) && (linhas_B < 4 || linhas_B > 8 ))
			printf("Dimensoes Erradas, Inserir novamente!");
		else if((colunas_B >= 11 || colunas_B <= 5 ) && (linhas_B >= 4 || linhas_B <= 8 ) )
			printf("N Colunas Erradas, Inserir novamente!");
		else if ((colunas_B <= 10 || colunas_B >= 6) && (linhas_B < 4 || linhas_B > 8 ))
			printf("N Linhas Erradas, Inserir novamente!");
		else   // PORQUE ESTA A ENTRAR NO ELSE QUANDO ESTA ERRADO???? ex: se meter num de linhas maior que o de colunas
		{
			if(linhas_B >= colunas_B)
				printf("Dimensoes Erradas! O numero de colunas tem que ser superior ao de linhas!");
			else
				ok_B = 1;
				printf("Dimensoes corretas");
		}

	} while(ok_B=0);

	tabuleiro_ok = 1;
}while(tabuleiro_ok = 0);


}

Ainda está um pouco confuso, mas primeiro vou-me preocupar em meter a funcionar e isso em segundo plano.

Editado por miguel__1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pwseo    223
pwseo

miguel__1,

Quando escreves if (i=1) { ... }, não estás a verificar se i é 1 mas sim a definir i como sendo 1. O teu problema está aí (na função main()).

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
miguel__1    1
miguel__1

miguel__1,

Quando escreves if (i=1) { ... }, não estás a verificar se i é 1 mas sim a definir i como sendo 1. O teu problema está aí (na função main()).

Sm, Era mesmo isso. Obrigado.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.