Ir ao conteúdo
  • Cadastre-se
ehodas01

Mega sena em c

Recommended Posts

Boa Tarde Galera 

Criar um programa sobre a MEGA SENA com as seguintes funções: 
1)  Gerar 3000 sorteios realmente aleatórios, em uma matriz, cada um com 6 números únicos 
(01 a 60) 
a)  Exibir os números por ordem do sorteio. 
B)  Exibir os números por ordem crescente. 
Por exemplo: [Sorteio 0001] = 45 – 22 – 04 – 33 - 47 – 15 (04 – 15 – 22 – 33 – 45 – 47) 
 
2)  Gerar uma lista de estatística com os seguintes dados: 
a)  Quantidade de vezes que cada número saiu nos sorteios (Ordem crescente). 
 Por exemplo: Numero 05 = 290 vezes. 

 

 

Eu já consegui a 2, mas a 1 esta complicado eu nao estou conseguindo fazer a lista dos 3000 números aparecem conforme o exemplo;

 

segue meu codigo 

 #include <stdio.h> 
#include <stdlib.h> 
#include <time.h> 
#define N 3000 
int main () { 
int freq[60]; /* freq é a frequencia do número i+1 */ 
int jogo[6], i, j, k; 
char ja_consta; 
for (i=0; i<60; i++) 
freq = 0; 
srand (time(NULL)); 
for (i=1; i<=N; i++) { 
for (j=0; j<6; j++) { 
jogo[j] = rand() % 60 + 1; /* gera número entre 1 e 60 */ 
do { 
ja_consta = 'N'; 
for (k=0; k<j; k++) 
if (jogo[j] == jogo[k]) 
ja_consta = 'S'; 
if (ja_consta == 'S') /* Já sorteado neste jogo, gera novo número */ 
jogo[j] = rand() % 60 + 1; 
} while (ja_consta == 'S'); 
} 
for (j=0; j<6; j++) 
freq[jogo[j]]++; 
} 
printf("Frequência de cada número\n"); 
for (i=0; i<60; i++) { 
printf("\t%d: %d", i+1, freq); 
if ((i+1) % 10 == 0) 
printf("\n"); 
} 
return 0; 
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

To postando de novo porque apagaram.

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define N 3000
int main ()
{
    int freq[60]; /* freq é a frequencia do número i+1 */
    int jogo[N][6], jogo1[N][6], i, j, k, aux;
    char ja_consta;
    for (i=0; i<60; i++)
        freq[i] = 0;
    srand (time(NULL));
    
    for (i=0; i<N; i++){ //Aqui sorteia os jogos
        for (j=0; j<6; j++){
            do{
                jogo[i][j] = rand() % 60 + 1; /* gera número entre 1 e 60 */
                ja_consta = 'N';
                for (k=0; k<j; k++) //Aqui verifica se o numero ja foi sorteado nesse jogo
                    if (jogo[i][j] == jogo[i][k])
                        ja_consta = 'S';
            }while (ja_consta == 'S'); //Enquanto o numero sorteado for repetido o ciclo se repete
            jogo1[i][j] = jogo[i][j]; //Aqui só faz uma copia para outra matriz
            freq[jogo[i][j]-1]++; //Guarda a quantidade de vezes que cada valor foi sorteado 
                                  //Tem que ser jogo[i][j]-1 porque se não vai tentar acessar o indice 60 do vetor, sendo que só vai até 59.
        }
    }


    for(i=0;i<N;i++){   //Nessa parte o jogo é colocado em ordem crescente
        for(j=0;j<6;j++){
            for(k=j; k<6; k++){
                if(jogo1[i][k]<jogo1[i][j]){
                    aux = jogo1[i][j];
                    jogo1[i][j] = jogo1[i][k];
                    jogo1[i][k] = aux;
                }
            }
        }
    }

    printf("Jogos sorteados\n");
    for(i=0;i<N;i++){ //Aqui os jogos sao impressos na tela
        printf("Jogo %d:    ", i+1);
        for(j=0;j<6;j++)
            printf("%d ", jogo[i][j]);
        printf("(");
        for(j=0;j<6;j++)
            printf("%d ", jogo1[i][j]);
        printf(")\n");
    }
    
    printf("Frequência de cada número\n");
    for (i=0; i<60; i++) //Aqui mostra a frequencia de cada numero sorteado
    {
        printf("\t%d: %d", i+1, freq[i]);
        if ((i+1) % 10 == 0)
            printf("\n");
    }


    return 0;
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 14/10/2016 às 16:15, MassakiMsk disse:

To postando de novo porque apagaram.


 

Se fosse numeros nao aleatorios, tipo eu digita, e aparecer os 6 mais jogados, como posso fazer?

 

adicionado 4 minutos depois

Se fosse numeros nao aleatorios, tipo eu digitar ou anexar e aparecer os 6 mais jogados, como posso fazer?

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×