Mega Sena
Publicado por Tiago Tavares 16/11/2006
[ Hits: 27.846 ]
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
[C] Decompositor de números em fatores primos
Contagem de elementos de um array
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
O programa assinador digital (1)
PIP3 - erro ao instalar módulo do mariadb para o Python (9)
É normal não gostar de KDE? (8)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)









