Mega Sena
Publicado por Tiago Tavares 16/11/2006
[ Hits: 28.012 ]
Caros colegas, aqui está um simples algoritmo de sorteio de mega sena. Tem gente aqui da empresa que viciou nisso!
#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
Agenda eletronica com banco de dados em arquivo texto
Programa para cálculo vetorial
Fscrypt: protegendo arquivos do seu usuário sem a lentidão padrão de criptograr o disco
Faça suas próprias atualizações de pacotes/programas no Void Linux e torne-se um Contribuidor
Como rodar o Folding@home no Linux
Criando um painel de controle (Dashboard) para seu servidor com o Homepage
O Abismo entre o Código e o Chão: Saltos Tecnológicos e a Exclusão Estrutural no Brasil
Pisando no acelerador do Linux Mint: Kernel XanMod, zRAM e Ajustes de Swap
Como compilar kernel no Linux Mint
Lançamento do Brutal DOOM test 6
Consertando o erro no Brave de webgl
Solução para ter de volta as bordas e barra de títulos das janelas em zenity no Debian 13.x
Abrir um arquivo URL pelo Clipper (8)
Seno, Coseno, Tangente em CLIPPER (1)
Inserir uma URL num arquvo pelo Ubuntu (CLIPPER) (0)
VMWare Player não conecta na rede nem consigo intercambiar arquivos (1)









