Mega Sena

Publicado por Tiago Tavares 16/11/2006

[ Hits: 26.675 ]

Download megasena.cpp




Caros colegas, aqui está um simples algoritmo de sorteio de mega sena. Tem gente aqui da empresa que viciou nisso!

  



Esconder código-fonte

#include <iostream.h>
#include <conio.h>

/*Algoritmo que simula um jogo da Mega-Sena. Primeiro, armazena 6 números
digitados pelo usuário. Depois, faz um sorteio e armazena 6 números em outro
vetor. Por último, compara os dois vetores e verifica quantos números 
são iguais.*/

// Prototipação
int main();
void mostrar_num();
void ordenar_num();
void sorteio();
void ordernar_sort();
void mostrar_sort();
void result();
void menu_final();

// Variáveis globais
int i, num[6], sort[6], j, aux;



int main()
{
    int igual;
    
    cout << "\n\n--------------------\n";
    cout << "MEGA SENA\n";
    cout << "--------------------\n\n";
    
    do
    {
          for (i=0,j=1;i<6;i++,j++)
          {
              cout << "\n";
              do
              {
                   cout << "Digite o " << j << " numero: ";
                   cin >> num[i];
                   
                   if (num[i]>60)
                   {
                      cout << "Voce digitou um numero maior que 60. Digite novamente.\n";
                   }
                   
              } while (num[i]>60); // verifica se os numeros sao maiores que 60
          } // fim do for
          
          igual=0;
        
           for (i=0;i<6;i++) // verifica se o usuario digitou numeros iguais
           {
               for (j=i+1;j<=5;j++)
               {
                   if (num[i]==num[j])
                   {
                      igual++;
                   }
               } // fim do for
           } // fim do for
               
           if (igual>0) // 
              cout << "\nATENCAO! Voce digitou numeros iguais. Digite a sequencia novamente.\n";   
           
     } while (igual>0); // verifica se os numeros são iguais.
    
    mostrar_num();

} // fim do int main



void mostrar_num()
{
     ordenar_num(); // chama o modulo qie ordena o vetor.
     
     cout << "\n\nVoce escolheu os seguintes numeros: \n\n";
     
     for (i=0;i<6;i++)
    {
        cout << num[i] << "   ";
    }
    
    cout << "\n\nAperte qualquer tecla para efetuar o sorteio...";
    
    getch();
    
    sorteio();
    
} // fim do void mostrar_num



void ordenar_num()
{
     // ordenar o vetor
    for (i=0;i<6;i++)
    {
        for (j=i+1;j<=5;j++)
        {
            if (num[j] < num[i])
            {
               aux=num[i];
               num[i]=num[j];
               num[j]=aux;
            }
        }
    }
} // fim do void ordenar_num





void sorteio()
{
     int igual;
     
     srand (time(0));
     
     do
     {
           
           for (i=0;i<6;i++) // for que sorteia os números
           {
               sort[i]=rand()%60; // ou sorteio[i]=random(60)
           }
     
           igual=0;
        
           for (i=0;i<6;i++) // for que verifica se foram sorteados 2 números iguais
           {
               for (j=i+1;j<=5;j++)
               {
                   if (sort[i]==sort[j])
                   {
                      igual++;
                   }
               } // fim do for
           } // fim do for
           
     } while (igual>0); // Se números iguais foram sorteados, o sorteio será ralizado novamente
     mostrar_sort();
     
} // fim do void sorteio



void ordenar_sort()
{
     // ordenar o vetor
    for (i=0;i<6;i++)
    {
        for (j=i+1;j<=5;j++)
        {
            if (sort[j] < sort[i])
            {
               aux=sort[i];
               sort[i]=sort[j];
               sort[j]=aux;
            }
        }
    }
}



void mostrar_sort()
{
     ordenar_sort();
     
     cout << "\n\nNumeros sorteados:  \n";
     
     for (i=0;i<6;i++) // Mostrar os números sorteados
     {
         cout << sort[i] << "   ";
     }
     
     cout << "\n\nAperte qualquer tecla para ver o resultado...\n\n";
     
     getch();
     
     result();
} // fim do void mostrar_sort




void result()
{
     int iguais[6], acertos=0, k=0;
     
     for (i=0;i<6;i++) // controla o vetor dos números do usuário
     {
         for (j=0;j<6;j++) // controla o vetor dos números sorteados
         {
             if (num[i]==sort[j]) // verifica se os numeros são iguais
             {
                 iguais[k]=num[i]; //se forem iguais, copia os numeros iguais para um outro vetor
                 acertos++;
                 k++;
                 j=5;
             }
             
             if (num[i] < sort[j])
             {
                 j=5;
             }
         } // fim do for 
     } // fim do for
     
     cout << "Voce teve " << acertos <<  " acerto(s): ";
     
     for (i=0;i<acertos;i++) // mostrar apenas os numeros iguais
     {
         cout << iguais[i] << "   ";
         //getch();
     }
     
     // getch();
     
     menu_final();
     
} //fim do void result



void menu_final()
{
     char opcao;
     int a;
     
     cout << "\n\n\n1 - Digitar outra sequencia\n";
     cout << "2 - SAIR\n\n";
     
     do
     {
     a=0;
     
     cout << "Digite a sua opcao: ";
     cin >> opcao;
     
     
          switch (opcao)
          {
                 case'1': main();
                          break;
                 case'2': break;
                 default : cout << "Opcao invalida.";
                           a++;
          }
     } while (a=1);//Verifica se o usuário digitou uma opção válida ou não
     
     getch();
     
} //fim do void menu_final

Scripts recomendados

Aterm multi-color

Jogo para adivinhar o numero

Árvore binária

Vírus didático para Linux em C

Conta letras


  

Comentários
[1] Comentário enviado por albertguedes em 19/11/2006 - 15:34h

Opa, agora fico milionário ! : )
Brincadeira a parte, gostei do programa, bem comentado, belo trabalho.

[2] Comentário enviado por spawnlook em 19/11/2006 - 20:26h

só por curiosidade.. cpp?
é c++?
seria.. isso:
bash-3.00$ c++ -I$QTDIR/include -L$QTDIR/lib -lqt -o megasena.cpp

??

[3] Comentário enviado por alaorrr em 21/09/2007 - 16:26h

preciso de um programa em c ou c++ que mostre todas as probabilidades, combinações com numeros 6 à 15 para mega sena, valor da aposta e q faça um sorteio aleatorio

[4] Comentário enviado por grossfuss em 25/02/2009 - 01:17h

ai, alaorr. tá ai o codigo


//gera.c
#include <stdio.h>
#include <stdlib.h>
int main()
{
unsigned conta=0;
int a,b,c,d,e,f;
for (a=6;a<=15;a++)
for (b=a+1;b<=15;b++)
for(c=b+1;c<=15;c++)
for (d=c+1;d<=15;d++)
for (e=d+1;e<=15;e++)
for (f=e+1;f<=15;f++)
{
conta++;
printf("\n|%8u %02d %02d %02d %02d %02d %02d|",conta,a,b,c,d,e,f);
}


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts