Ir para conteúdo
Fórum Script Brasil
  • 0

Programa euromilhões em c++


Pedro Pinto

Pergunta

Boa noite. Gostaria que me ajudassem a corrigir este algoritmo. Tenho de fazer um programa que simule o euromilhões e ainda verificar quantos números acertei e atribuir prémios respetivos. Não consigo não deixar o utilizador introduzir números repetidos. Além disso os contadores parecem não estar a funcionar corretamente.

O algoritmo é o seguinte:

#include <iostream>
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
using namespace std;
int z;
int y;
int numeros[5];
int i;
int estrelas[2];
int c;
int w,u;
int contador=0;
int contador2=0;
void chave_aleatoria(int numeros_chave[])
{
    srand(time(NULL));
    cout << "os numeros são"<<endl;
    for(z=0;z<5;z++)
    {
        numeros_chave[z]= 1+rand() % 50;
        cout << numeros_chave[z] << endl;
        if (numeros==numeros_chave[z])
        {
        contador++;
        }
    }
}
void chave_aleatoria2(int estrelas_chave[])
{
    srand(time(NULL));//não pode repetir; não sei como fazer
    cout << "as estrelas são"<<endl;
    for(y=0;y<2;y++)
    {
        estrelas_chave[y]= 1+rand() % 12;
        cout << estrelas_chave[y] << endl;
        if (estrelas[c]==estrelas_chave[y])
        {
        contador2++;
        }
    }
}
int main()
{
    int vetor[50];
    for (i=0;i<5;i++)
    {
        do
        {
        cout << "Introduza um numero "<< endl;
        cin >> numeros;
        }
        while (numeros<1 || numeros>50 || numeros==numeros[i-1]);
    }
    int vetor2[12];
    for (c=0;c<2;c++)
    {
        do
        {
        cout << "Introduza uma estrela " << endl;
        cin >> estrelas[c];
        }
        while (estrelas[c]<1 || estrelas[c]>12 || estrelas[c]==estrelas[c-1]);
    }
    int numeros_chave[5];
    chave_aleatoria(numeros_chave);
    int estrelas_chave[2];
    chave_aleatoria2(estrelas_chave);
    if (contador==2 && contador2==0)
    {
        cout << "acertou 2 numeros e por isso venceu o decimo terceiro premio";
    }
    if (contador==2 && contador2==1)
    {
        cout << "acertou 2 numeros e 1 estrela e por isso venceu o decimo segundo premio";
    }
    if (contador==1 && contador2==2)
    {
        cout << "acertou 1 numero e 2 estrelas e por isso venceu o decimo primeiro premio";
    }
    if (contador==3 && contador2==0)
    {
        cout << "acertou 3 numeros e por isso venceu o decimo premio";
    }
    if (contador==3 && contador2==1)
    {
        cout << "acertou 3 numeros e 1 estrela e por isso venceu o nono premio";
    }
    if (contador==2 && contador2==2)
    {
        cout << "acertou 2 numeros e 2 estrelas e por isso venceu o oitavo premio";
    }
    if (contador==4 && contador2==0)
    {
        cout << "acertou 4 numeros e por isso venceu o setimo premio";
    }
    if (contador==3 && contador2==2)
    {
        cout << "acertou 3 numeros e 2 estrelas e por isso venceu o sexto premio";
    }
    if (contador==4 && contador2==1)
    {
        cout << "acertou 4 numeros e 1 estrela e por isso venceu o quinto premio";
    }
    if (contador==4 && contador2==2)
    {
        cout << "acertou 4 numeros e 2 estrelas e por isso venceu o quarto premio";
    }
    if (contador==5 && contador2==0)
    {
        cout << "acertou 5 numeros e por isso venceu o terceiro premio";
    }
    if (contador==5 && contador2==1)
    {
        cout << "acertou 5 numeros e 1 estrela e por isso venceu o segundo premio";
    }
    if (contador==5 && contador2==2)
    {
        cout << "acertou 5 numeros e 2 estrelas e por isso venceu o primeiro premio";
    }
    if (contador==0 && contador2==0)
    {
        cout << "não acertou nenhum numero nem nenhuma estrela e por isso não tem premio";
    }    
    if (contador==0 && contador2==1)
    {
        cout << "acertou apenas 1 estrela e por isso não tem premio";
    }
    if (contador==0 && contador2==2)
    {
        cout << "acertou apenas 2 estrelas e por isso não tem premio";
    }
    if (contador==1 && contador2==0)
    {
        cout << "acertou apenas 1 numero e por isso não tem premio";
    }
    if (contador==1 && contador2==1)
    {
        cout << "acertou apenas 1 numero e 1 estrela e por isso não tem premio";
    }
    cout << endl;
    system("pause");
}

Agradecia se me dessem uma ajuda

Abraço,

Pedro

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,1k
    • Posts
      651,8k
×
×
  • Criar Novo...