Jump to content

Recommended Posts

Posted

Olá.

Eu tenho uma dúvida que é a seguinte: Eu estou a fazer um programa, o jogo do euromilhões.

Neste momento estou a comparar os valores para ver se o utilizador acertou em algum dos números gerados pelo computador. E a seguir dizer se acertou algum ou não e quais os valores que acertou.

Eu não consigo fazer isso,será que alguém me pode dar uma ajudinha?

Obrigada.

Posted

Tens que ser bastante mais específica nas tuas dúvidas. Da forma que escreveste, não colocaste pergunta nenhuma nem sequer mencionaste em que área tinhas dúvidas, por exemplo:

  • Comparação de números inteiros
  • Obtenção de input do utilizador
  • Geração de números aleatórios
  • ...
Posted (edited)

O meu problema é ver quem é o vencedor.

Eu já pus os números que queria e já gerei os números do pc agora falta confirmar se eu acertei algum numero que o computador gerou e depois de ver tem que escrever para o ecrã essa informação.

O meu código é este:

#include<windows.h>
#include<stdio.h>
#include<time.h>


int main(int argc, char *argv[])
{
   int i,chave,estrela;//declara-se a variavel i, por exemplo

   HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);

  /* ************************************************************************************************************
                                    Vai mostrar os numeros das chaves
     ************************************************************************************************************
  */
   SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE |FOREGROUND_GREEN |FOREGROUND_INTENSITY); //meter a cor a azul
   printf("Numeros:\n");//Vai escrever para o ecrã
   for(i=1;i<51;i++)//todos os numeros desde o 1 até 50
   {//Abre a sequencia for
                        printf(" %d ",i);// aqui vai mostrar todos os numeros
   }//Fecha a sequencia for
   printf("\n\n");//foi acrescentado o \n para fazer parágrafo, por razões estéticas

  /* ************************************************************************************************************
                                    Vai mostrar os numeros das estrelas
     ************************************************************************************************************
  */

   SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY); //meter cor a amarela
   printf("Estrelas: \n");//Vai escrever para o ecrã
   for(i=1;i<=11;i++)//todos as estrelas desde o 1 até 11
   {//Abre a sequencia for
                         printf(" %d ",i);// aqui vai mostrar todos as estrelas
   }//Fecha a sequencia for
   printf("\n\n");//foi acrescentado o \n para fazer parágrafo, por razões estéticas

  /* ************************************************************************************************************
                                    Vai mostrar as apostas
     ************************************************************************************************************
  */
   SetConsoleTextAttribute(hConsole,FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE ); // voltar ao normal

  printf("1||Aposta\n");//vai imprimir o que está dentro de "" para o ecrã
  SetConsoleTextAttribute(hConsole, FOREGROUND_BLUE |FOREGROUND_GREEN |FOREGROUND_INTENSITY); //meter a cor a azul
  printf("Introduza o numero 1:");//o utilizador vai introduzir um numero a seu gosto entre 1 e 50
  scanf("%d",&chave);//vai ler qual é o numero da chave ordenada
  printf("Introduza o numero 2:");//o utilizador vai introduzir um numero a seu gosto entre 1 e 50
  scanf("%d",&chave);//vai ler qual é o numero da chave ordenada
  printf("Introduza o numero 3:");//o utilizador vai introduzir um numero a seu gosto entre 1 e 50
  scanf("%d",&chave);//vai ler qual é o numero da chave ordenada
  printf("Introduza o numero 4:");//o utilizador vai introduzir um numero a seu gosto entre 1 e 50
  scanf("%d",&chave);//vai ler qual é o numero da chave ordenada
  printf("Introduza o numero 5:");//o utilizador vai introduzir um numero a seu gosto entre 1 e 50
  scanf("%d",&chave);//vai ler qual é o numero da chave ordenada
  printf("\n");//foi acrescentado o \n para fazer parágrafo, por razões estéticas

  /* ************************************************************************************************************
                                    Vai mostrar as estrelas
     ************************************************************************************************************
  */
  SetConsoleTextAttribute(hConsole, FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_INTENSITY); //meter cor a amarela
  printf("Introduza a estrela 1:");//o utilizador vai introduzir uma estrela a seu gosto entre 1 e 50
  scanf("%d",&estrela);//vai ler qual é a estrela da chave ordenada
  printf("Introduza a estrela 2:");//o utilizador vai introduzir uma estrela a seu gosto entre 1 e 50
  scanf("%d",&estrela);//vai ler qual é a estrela da chave ordenada

  /* ************************************************************************************************************
                                    Vai mostrar os numeros sorteados
     ************************************************************************************************************
  */
  printf("\n");//foi acrescentado o \n para fazer parágrafo, por razões estéticas
  printf("Os numeros sorteados sao :\n");//escreve quais os numeros sorteados
  srand(time(NULL));//gera numeros
  int n1 = (rand()%49)+1;//gera o 1º numero
  int n2 = (rand()%49)+1;//gera o 2º numero
  int n3 = (rand()%49)+1;//gera o 3º numero
  int n4 = (rand()%49)+1;//gera o 4º numero
  int n5 = (rand()%49)+1;//gera o 5º numero
  printf(" %d %d %d %d %d\n",n1,n2,n3,n4,n5);// mostra os 5 numeros sorteados

  /* ************************************************************************************************************
                                    Vai mostrar os numeros sorteados
     ************************************************************************************************************
  */
  printf("\n");//foi acrescentado o \n para fazer parágrafo, por razões estéticas
  printf("As estrelas sorteados sao :\n");//escreve quais as estrelas sorteados
  srand(time(NULL));//gera numeros
  int e1 = (rand()%10)+1;//gera a 1º estrela
  int e2 = (rand()%10)+1;//gera a 2º estrela
  printf(" %d %d \n",e1,e2);// mostra as 5 estrelas sorteados

/*  ************************************************************************************************************
                                 Mostra se o utlizador acertou em alguma chave e estrela
   ************************************************************************************************************
*/




 system("PAUSE"); 
 return 0;
}

Vê se percebes agora qual é a minha dúvida. Obrigada

Edited by pmg
Code tags com GeSHi
Posted

Obrigado pmg por colocares o código dentro das tags apropriadas 🙂

AninhasSilva, já reparaste que estás a ler todos os valores do utilizador para a mesma variável? Quando chegas ao final, só tens registo do último número e da última estrela.

E que tal utilizar um array para guardar o input do utilizador e posteriormente comparar com os números aleatórios gerados?

Agora, a tua "dúvida" continua a ser algo que não sabemos o que é. Mas deu para perceber que não sabes como guardar o input e compará-lo posteriormente com os valores gerados. Mas usa um array para isso.

Posted

além do problema já referido, tens um outro menos visível.

nada impede que a escolha aleatório da chave seleccione elementos repetidos.

a maneira mais simples de resolver o teu problema é com arrays.

arranja um array de números de 1 a 50 (números) e outro de 1 a 11 (estrelas). depois baralha os arrays e escolhe os 6 primeiros elementos dos números e os 2 primeiros elementos das estrelas. dessa forma nunca terás elementos repetidos.

depois disso, basta teres um ciclo de comparação dos elementos seleccionados pelo utilizador (algo que terás de corrigir como já foi referido) e os elementos seleccionados como chave.

IRC : sim, é algo que ainda existe >> #p@p

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.