Ir ao conteúdo
  • Cadastre-se

Valores pré determinados em posições aleatórias na matriz em C


MarcioAlerico

Posts recomendados

Olá sou novo aqui no fórum curso Desenvolvimentos de jogos eletrônicos e hoje me deparei com uma duvida, o qual a professora não conseguiu me ajudar.

Em fim queria saber se tem como pegar valores pré determinados em posições aleatória dentro de uma matriz... não tenho ideia de como fazer isso se alguem puder me dar uma ajuda.

Link para o comentário
Compartilhar em outros sites

Olá Marcio,

Pelo o que eu entendi dá para fazer sim e é bem simples através do comando rand().

Rand é uma função que gera números aleatórios em um range que você pode limitar.

Ex.

v1 = rand() % 100;         // v1 vai ficar entre 0 ate 99
v2 = rand() % 100 + 1; // v2 vai ficar entre 1 ate 100
v3 = rand() % 30 + 1985; // v3 vai ficar entre 1985 ate 2014

Logo com sua matriz criada você limita o range para a quantidade de colunas e linhas para não correr o risco da variável ser jogada "fora" da matriz.

Link para o comentário
Compartilhar em outros sites

Sim amigo mas o que eu queria é Mudar os valores já dentro da matriz para uma posição aleatória no casa os números já estariam dentro da matriz e o que aconteceria seria mudar as posições. como se foce um algorítimo para ordenar só que ao invés de ordenar ele iria sortear as posições...

Link para o comentário
Compartilhar em outros sites

Olá,

Entendo, dá para fazer sim porém ia ficar um pouco mais grandinho pois teria que ser feita uma checagem. O que eu pensei de imediato foi ter 2 matrizes, uma é a matriz real e outra temporária. Segue os passos:

1. Você ao realizar a mudança ia pegar todos os valores da raiz real e jogar na temporária;

2. Iria botar todos os valores da matriz real para um valor em comum que não seja usado (nesse ex. será 0);

3. Vai lendo o valor de posição em posição da matriz temporária e iria jogar na matriz real fazendo uma checagem:

i = rand();
j= rand(); //pegando os valores aleatórios para as posições
if (matrizReal [i][j] != 0) [..] "repita o processo" /*checa se já tem algum
valor onde caiu a posição, se sim repetir o processo,
se não insira o valor da matriz temporária para essa unidade*/
else
matrizReal [i][j] == matrizTemp[a][b];

Consegue visualizar a ideia??

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...