Ir ao conteúdo
  • Cadastre-se

Renan Jacomassi

Membro Júnior
  • Posts

    1
  • Cadastrado em

  • Última visita

Reputação

0
  1. Oi pessoal, boa tarde. Fiz um código para o problema abaixo (em azul), mas parece que minha lógica está com algum furo. Já revisei, e não entendo o porque ainda tenho números repetidos. Alguém consegue me dar uma força? Obrigado!! A lógica que eu pensei do código é a seguinte: Eu preencho um campo da matriz, com "i" e "j" e comparo com os anteriores, através de outro FOR, com "k" e "z". Caso este campo que acabei de preencher seja igual a um campo anterior, eu volto uma posição (j = j -1) e começo o FOR novamente. Para isso eu utilizei 4 FOR`s (um dentro do outro, para entrar na matriz e fazer a comparação), 4 variáveis (i,j,k,z) e uma "aux" que serve como minha condicional para parada. Importante: Eu fiz o código com uma matriz 4x4 para testá-lo. Depois vou replicar para uma matriz 99x99. Segue o problema: Faça um programa para gerar automaticamente números entre 0 e 99 de uma cartela de bingo. Sabendo que cada cartela deverá conter 5 linhas e 5 números, gere estes dados de modo a não ter números repetidos dentro da cartela. Segue o Código: #include <stdio.h> #include <stdlib.h> #include <time.h> int main () { int M[4][4], i,j,k,z, aux = 0; srand(time(NULL)); for(i=0;i<4;i++){ for(j=0;j<4;j++){ aux = 0; M[i][j] = 1+ rand() % 16; for(k = i; k >= 0; k--){ if(aux == 1){ j = j - 1; break; } for(z = j; z >= 0; z--){ if((M[k][z] == M[i][j] && k != i && z != j)){ aux = 1; break; } } } } } printf("\n\n\n\n"); for(i=0;i<4;i++){ for(j=0;j<4;j++){ printf("%d\t", M[i][j]); } printf("\n"); } return 0; }

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