Ir ao conteúdo
  • Cadastre-se

Mega sena em c


ehodas01

Posts recomendados

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; 
}

 

  • Curtir 1
Link para o comentário
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 3
Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...
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?

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • 1 ano depois...

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