Ir para conteúdo
Fórum Script Brasil

Pedro Pinto

Membros
  • Total de itens

    1
  • Registro em

  • Última visita

Posts postados por Pedro Pinto

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

×
×
  • Criar Novo...