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