Ir ao conteúdo

Posts recomendados

Postado

ola, preciso fazer um exercicio em c pra faculdade, mas nao sei como resolver o esquema de nao repetir os numeros.. 

aqui ta o exercicio: "Faca um programa para gerar automaticamente numeros de 0 a 99 de uma cartela de bingo. Sabendo
que cada cartela devera conter 5 linhas de 5 numeros, gere estes dados de modo a nao ter numeros
repetidos dentro das cartela. O programa deve exibir na tela a cartela gerada

 

e aqui ta meu codigo:
 

#include<stdio.h>

#include<stdlib.h>

#include<time.h>



int main()

{

    int bingo [5][5], a, b;

    int aleatorio;



    printf("\n\t---> VAMOS SORTEAR UMA CARTELA DE BINGO!! <---");

    printf("\n\n\n");



    for (= 0; a < 5; a++)

    {

        for (= 0; b < 5; b++)

        {

            srand( time(NULL));

            aleatorio = rand() % 99;

            

            bingo[a][b] = aleatorio;

        }

        

    }

   

    for (= 0; a < 5; a++)

    {

        for (= 0; b < 5; b++)

        {

            printf("\t| %d |", bingo[a][b]);

        }



    printf("\n");    

    }



    

return 0;

}

 

agardeço desde ja :)

  • Curtir 2
Postado

Meses atrás eu postei um programa que fazia exatamente isso, aqui nesse forum

 

veja um pedaço da saída
 

image.png.6add3742fdb8c967c8f51b461d6bc9e1.png

Esse programa cria 5 cartelas normais de bingo e simula uma rodada até alguém ganhar. Pode ser um exemplo útil. Lá no tópico tem um botão de download.

 

O sorteio

 

O clássico em C para isso é usar rand() que devolve um int e escrever rand() % 100 por exemplo para ter um número entre 0 e 99, e depois escrever rand() % 99 e ter um número entre 0 e 98 e ir diminuindo. No final vai escolher entre dois números apenas. E usar essa sequência para pegar os números e gerar as cartelas.

 

 

 

 

  • Curtir 1
Postado
#include <stdio.h>
#include <conio.h>
#include <time.h>
#include <stdlib.h>
	int main() {
  int aleatorio[50]; 
  srand(time(NULL)); 
  int cont, j, achou, num;
  for (cont = 0; cont < 25; cont++) {
    do {
      achou = 0; 
      num = rand() % 99 +1;

      for (j = 0; j < 25; j++)
        if (num == aleatorio[j])
          achou = 1; 

    } while (achou);
    aleatorio[cont] = num;

  }
  for (j = 0; j < 25; j++){
  if (j%5==0)
		printf("\n");
		printf("[%d]",aleatorio[j]);
		}
}

 

  • Curtir 2
Postado

obrigada por ajudar.

 

vi que usou um vetor, mas eu preciso usar matriz neste caso..

 

1- você pode me explicar o porque da variavel 'achou'?

2 -esse cont como indice?

20 minutos atrás, herbertbahia disse:

aleatorio[cont]

 

  • Curtir 1
  • Amei 1
Postado

@arfneto omg, meu cerebro até trava olhando o monstrinho q voce criou hahaha

esse que fez é bastante complexo e completo..só que preciso de um bem simples mesmo só pra aleatorizar 1 cartela :D

  • Curtir 1
Postado
38 minutos atrás, Sizonel disse:

omg, meu cerebro até trava olhando o monstrinho q voce criou hahaha

esse que fez é bastante complexo e completo..só que preciso de um bem simples mesmo só pra aleatorizar 1 cartela

 

Leia o programa e veja a parte onde faz o que você precisa. E rode em sua máquina. Pode te dar alguma ideia.

 

É um programa divertido. Ele prepara as cartelas e coloca na tela e o painel faz os sorteios. Os números que saem nas cartelas vão ficando em verde e segue até alguém ganhar. Como são só 5 cartelas em geral só vai terminar perto de saírem todos os números mesmo

Postado

@Sizonel No enunciado que postou não diz que precisa usar matriz, foi o professor que especificou?

 

Um método seria gerar um vetor com os 100 números, usar um algoritmo de embaralhamento (fisher-yates) para embaralhar os números no vetor, e aí imprime os 25 primeiros números do vetor no formato 5 x 5.

 

https://pt.wikipedia.org/wiki/Embaralhamento

https://en.wikipedia.org/wiki/Fisher–Yates_shuffle

 

 

Dá pra fazer a mesma coisa usando uma matriz 10x10 (e só imprimir 5x5 dos campos da matriz no fim do programa), mas é desnecessário, é melhor usar um vetor.

  • Curtir 1
  • Obrigado 1
  • 5 meses depois...
Postado

@arfneto eu não consegui achar o link para download do seu programa, estou com um trabalho que precisa de algo parecido e estou com problemas ao gerar as tabelas...as vezes os valores vem como lixo de memoria ... queria ver o seu pra ter um comparativo... se for possivel me disponibilizar o download. Desde já agradeço...

  • Curtir 1
Postado

 

O tópico está lá e é esse mesmo aqui  acima e o programa também está lá completo. Vi agora. É de abril de 2019.

 

Tem umas explicações, tem telas, uma discussão sobre o programa e os links para ler ou baixar o tal programa lá

image.png.3aa40cb0994b62392b7eec3f1419b325.png

 

 

image.png

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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